CentOS 服务器安装 IJulia

文章目录

  • 使用国内镜像
    • 解决报错
  • 安装(add)并测试(test) IJulia
    • 解决报错
  • 打开 notebook
  • tips

使用国内镜像

由于 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`.

这说明镜像已经存在了

安装(add)并测试(test) IJulia

(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

解决报错

  1. 如果在 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 就能解决了.

  1. 编译完 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 没有报错就安装上了

打开 notebook

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
CentOS 服务器安装 IJulia_第1张图片

创建一个 xxx.ipynb, 开启 julia 学习之路~
更多安装信息参考: https://github.com/JuliaLang/IJulia.jl

tips

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")).

你可能感兴趣的:(Julia,安装)