2019年7月26日金曜日

[Julia] Julia環境下でPythonを利用する

Julia環境下でPythonを利用できるようにする際のメモです.

まずは,ターミナルからJuliaを起動します.
$ Julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.1.0 (2019-01-21)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> 

"]"を入力してEnterを押して,パッケージの管理モードに入ります(以下のようにカーソルが"pkg>"に切り替わります).

パッケージの管理モードで以下のように入力します.
(v1.1) pkg> add OhMyREPL IJulia PyCall

すると,以下のようにズラズラと表示され,読み込みが始まります.
  Updating registry at `~/.julia/registries/General`

  Updating git-repo `https://github.com/JuliaRegistries/General.git
... 途中省略 ...
  Building PyCall → `~/.julia/packages/PyCall/ttONZ/deps/build.log`
  Building ZMQ ───→ `~/.julia/packages/ZMQ/ItfqT/deps/build.log`
  Building Rmath ─→ `~/.julia/packages/Rmath/BoBag/deps/build.log`
  Building FFTW ──→ `~/.julia/packages/FFTW/loJ3F/deps/build.log`
  Building Arpack → `~/.julia/packages/Arpack/zCmTA/deps/build.log`
  Building GR ────→ `~/.julia/packages/GR/oiZD3/deps/build.log`

終わったら,以下のようにPyCallを使う宣言をします.
julia> using PyCall
[ Info: Precompiling PyCall [438e738f-606a-5dbb-bf0a-cddfbfd45ab0]

julia> 

これで PyCall が使える環境になります(初回は上記のプレコンパイルに多少時間がかかります).

以下は試しにmathライブラリを使用してみた例です.
julia> math = pyimport("math")
PyObject <module 'math' from '/Users/xxx/.julia/conda/3/lib/python3.7/lib-dynload/math.cpython-37m-darwin.so'>

julia> math.sin(90)
0.8939966636005579

julia> math.cos(90)
-0.4480736161291701
なお,Juliaでは標準環境下で sin, cos関数が使えるので,比較のために計算してみると同じ値が得られます.

PyCallの再構築を行うには,以下のように入力します.
julia> import Pkg; Pkg.build("PyCall")
  Building Conda ─→ `~/.julia/packages/Conda/kLXeC/deps/build.log`
  Building PyCall → `~/.julia/packages/PyCall/ttONZ/deps/build.log`

JupyterNotebookで使えるようにするためには,以下のように入力します.
julia> using IJulia
julia> notebook()

これらをJupyter Notebookで実行した結果はGitHubで公開しています.

0 件のコメント :

コメントを投稿