由于 Julia 的官方的 Registry 在 Github 上, 但是下载一个 package 常常遇到网速不稳定的问题. 国内的 Julia 镜像有中科大和浙大, 我们只需要将镜像网址增加到 Registry 即可, 按 ]
键进入 pkg 模式, 输入命令:
(v1.3) pkg> registry add https://mirrors.zju.edu.cn/julia/registries/General.git/
或者
(v1.3) pkg> registry add https://mirrors.ustc.edu.cn/julia/registries/General.git/
如果出现以下问题
(v1.3) pkg> registry add https://mirrors.zju.edu.cn/julia/registries/General.git/
Cloning registry from "https://mirrors.zju.edu.cn/julia/registries/General.git/"
ERROR: failed to clone from https://mirrors.zju.edu.cn/julia/registries/General.git/, error: GitError(Code:ERROR, Class:Net, HTTP parser error: stream ended at an unexpected time)
可能是网络暂时不佳, 需要重新运行命令
如果出现以下提示
(v1.1) pkg> registry add https://mirrors.zju.edu.cn/julia/registries/General.git/
Cloning registry from "https://mirrors.zju.edu.cn/julia/registries/General.git/"
[ Info: registry `General` already exist in `~/.julia/registries/General`.
这说明镜像已经存在了
(v1.3) pkg> add IJulia
Updating registry at `~/.julia/registries/General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
Resolving package versions...
...
install.jl
ERROR: LoadError: Blosc not installed properly, run Pkg.build("ZMQ"), restart Julia and try again
...
ERROR: LoadError: Failed to precompile ZMQ [c2297ded-f4af-51ae-bb23-16f91089e4e1] to /root/.julia/compiled/v1.3/ZMQ/CaaO6_xeGhA.ji.
...
ERROR: LoadError: LoadError: Failed to precompile IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a] to /root/.julia/compiled/v1.3/IJulia/nfu7T_xeGhA.ji.
...
ERROR: Package IJulia errored during testing
Oops… 报错了, 不过不要紧, 报错内容已经告诉你解决的办法 Pkg.build("ZMQ"), restart Julia and try again
正常情况下, 你按照提示操作再编译 ZMQ
, 重启 Julia, 重新编译 IJulia
,并测试
julia> Pkg.build("ZMQ")
Building ZMQ → `~/.julia/packages/ZMQ/ABGOx/deps/build.log`
false
(v1.3) pkg> build IJulia
Building Conda ──→ `~/.julia/packages/Conda/kLXeC/deps/build.log`
Building ZMQ ────→ `~/.julia/packages/ZMQ/ABGOx/deps/build.log`
Building MbedTLS → `~/.julia/packages/MbedTLS/a1JFn/deps/build.log`
Building IJulia ─→ `~/.julia/packages/IJulia/cwvsj/deps/build.log`
(v1.3) pkg> test IJulia
Testing IJulia
Status `/tmp/jl_QaDYDI/Manifest.toml`
...
Testing IJulia tests passed
build ZMQ
过程中出现以下报错julia> Pkg.build("ZMQ")
Building ZMQ → `~/.julia/packages/ZMQ/ABGOx/deps/build.log`
┌ Error: Error building `ZMQ`:
│ ┌ Warning: platform_key() is deprecated, use platform_key_abi() from now on
│ │ caller = ip:0x0
│ └ @ Core :-1
│ ERROR: LoadError: Hash Mismatch!
│ Expected sha256: cc9090ba35713d59bb2f7d7965f877036c49c5558ea0c290b0dcc6f2a17e489f
│ Calculated sha256: d6256c33753fa4f3f27d0d5be45f0a3d986379c3f4fcc805e6275209c2e78e02
│ ...
└ @ Pkg.Operations /builddir/build/BUILD/julia/build/usr/share/julia/stdlib/v1.3/Pkg/src
这可能是由于内存不足造成的, 所以增加虚拟内存试试, 参考linux编译源码时内存不足的解决办法, 然后重新编译 ZMQ
, 重启 Julia 就能解决了.
ZMQ
之后如果没有再编译 IJulia
会报错(v1.3) pkg> test IJulia
Testing IJulia
Status `/tmp/jl_r5nwfW/Manifest.toml`
[b99e7846] BinaryProvider v0.5.6
...
install.jl
ERROR: LoadError: IJulia not properly installed. Please run Pkg.build("IJulia")
...
ERROR: LoadError: LoadError: Failed to precompile IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a] to
...
ERROR: Package IJulia errored during testing
报错信息会告诉你需要重新 Pkg.build("IJulia")
, 运行命令之后重新 test
没有报错就安装上了
在 bash
终端使用命令 which jupyter
查找 jupyter 路径, 例如我服务器上运行的结果为
/usr/local/bin/jupyter
如果没有安装过 jupyter , 可以参考CentOS server 搭建云端 jupyter notebook
然后在 Julia REPL 中先指定 JUPYTER 路径(初次使用需要), 然后使用 using IJulia
命令和 notebook()
函数就可以了
julia> ENV["JUPYTER"] = "/usr/local/bin/jupyter"
"/usr/local/bin/jupyter"
julia> using IJulia
julia> notebook()
[ Info: running setenv(`/usr/local/bin/jupyter notebook`,["PATH=...
由于我在安装 IJulia
之前提前启动了 jupyter notebook
, 直接登陆就可以使用 Julia Kernel
创建一个 xxx.ipynb
, 开启 julia 学习之路~
更多安装信息参考: https://github.com/JuliaLang/IJulia.jl
notebook()
相当于在操作系统命令行运行 jupyter notebook
, 该函数可接受两个参数
dir
用于指定 notebook 的工作目录detached=true
用于把 notebook 放在后台运行, 结束 notebook 进程来终止程序(默认 detached=false
, 按 ctrl+c
或者退出 Julia REPL 来终止 notebook)IJulia 不使用 IPython 中的 %magic
魔法函数, 有些可用 IJulia.somefunction(...)
代替, 有些直接使用 Julia 宏、字符串宏和函数就能实现 IPython 魔法函数的作用。
例如内置的 cd()
、pwd()
、readdir()
等函数用于文件路径操作, 加载 jl 文件内容到 jupyter cell 可使用 IJulia.load()
函数, 若需要从网络上加载 jl 内容, 需要使用 IJulia.load(download("url"))
.