julia做科學計算不錯,號稱比C 和Fortran都快,語法有matlab和lisp風,也非常容易寫。
julia和python交互很方便。所以用julia實現算法。用python做工程+膠水。
一、安裝julia
安裝的官方方法:
以官方發布的二進制為主. 官網居然沒有直接給出源碼編譯安裝的方式。果然偏科學計算學者,而不是開發者
國內鏡像(北外??? 為啥這里搞這個) https://mirrors.bfsu.edu.cn/julia-releases/bin/
官網 https://julialang.org/downloads/
1.1windows
下載二進制安裝包。
https://julialang-s3.julialang.org/bin/winnt/x64/1.4/julia-1.4.2-win64.exe
用迅雷速度很快。
然后安裝完了,建議在命令行試試,可能要手動設置一下PATH
安裝路徑有點神出鬼沒,1.4.2比1.3有調整,
C:\Users\XXX\AppData\Local\Programs\Julia\Julia-1.4.2\bin
1.2 Mint
無法apt,也不知道如何源碼安裝。用snap 只能安裝1.0.4版。 不能忍
只能下載二進制安裝包,
https://julialang-s3.julialang.org/bin/linux/x64/1.4/julia-1.4.2-linux-x86_64.tar.gz
s3在國內下載很慢,只能忍了。
然后手動在profile里 export
在shell里可以啟動REPL環境,說明julia本身安裝好了。
二、julia庫配置使用國內鏡像
這步在國內幾乎必須,不然安裝下面的pyCall都慢死。
參考https://discourse.juliacn.com/t/topic/2969
1.4以后的版本只需要設置環境變量就可以了
參考 https://mirrors.bfsu.edu.cn/help/julia/
設置環境變量
JULIA_PKG_SERVER = https://mirrors.bfsu.edu.cn/julia/static
win下在高級系統設置-環境變量里添加
linux 改profile
export JULIA_PKG_SERVER=https://mirrors.bfsu.edu.cn/julia/static
然后在julia里
julia
versioninfo()
看到JULIA_PKG_SERVER
那行,就說明OK了
三、配置與python互相調用
需要在python或julia任何1端都安裝配置一下
https://pyjulia.readthedocs.io/en/latest/installation.html
2.1python
pip3.8 install --user julia
python3.8
>>> import julia
>>> julia.install()
這一步需要julia在PATH里,否則會報錯
會去自動執行 下面的部分
2.2 Julia
julia> using Pkg julia> Pkg.add("PyCall")
如果配好國內源的話,這步應該超快的。
四、 實驗python調用julia函數
mylib.jl
function add(a, b) return a + b end
caller.py
from julia import Main as jl jl.include("mylib.jl") if __name__ == '__main__': res = jl.add(1, 1) print(res)
經過好幾秒,能顯示出2 就說明成功了-_- 主要是julia啟動環境和編譯JIT都需要時間
#-----------附錄: 備用的流程------------
用pill.py腳本一鍵安裝管理julia
參考https://mirrors.bfsu.edu.cn/help/julia-releases/
pip install jill --user -U
python -m jill install --upstream BFSU
然而實測安裝速度慢的要死,還不如用迅雷拖二進制下來,安裝快。。。
國內源
1.4之前的版本才需要下面這么搞
參考https://zhuanlan.zhihu.com/p/79913766
設置 repository
從國內而不是從github 刷新目錄
julia的REPL下:
輸入] 提示符變成pkg 進入包管理模式
registry add https://mirrors.ustc.edu.cn/julia/registries/General.git/
如果等半天還是沒反應,參考https://www.jianshu.com/p/cf68c9cb28e6
刪除
C:\Users\XXX\.julia\registries
再次運行上面的。反正還是要等半天,才Fetch 100%
安裝PkgMirrors
using Pkg
Pkg.add("PkgMirrors")
3. 指定國內鏡像
using PkgMirrors
PkgMirrors.setmirror("ZJU")