使用國內鏡像
由於 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
解決報錯
- 如果在
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
沒有報錯就安裝上了
打開 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
創建一個 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"))
.