私の目標は、コードの大部分がPythonいくつかの実験である)IPythonノートブックでJuliaの数行のみを実行することです...
ここでニースのノートブックの例を見つけました:
http://nbviewer.ipython.org/github/JuliaLang/IJulia.jl/blob/master/python/doc/JuliaMagic.ipynb
そして今、私はジュリア用のIPython拡張機能(私は主にIPython 2.1を使用しています)をインストールして、
%load_ext Julia.magic
私はジュリアにも非常に新しいので、このノートブックに示されているように(通常のPython numpyまたは通常のJuliaコードよりも)「numpyとJuliaの混合」のパフォーマンス上の利点があるかどうか疑問に思っています。
概念を正しく理解している場合、Juliaコードの実行のみに関心がある場合は、IJuliaノートブック(正常にセットアップしたもの)を使用しますか?
IJuliaをインストールし、IJuliaノートブックも実行できますが、実際にはノートブックにJuliaコードのほんの一部を入れたいだけで、残りはPython/Cythonです。残念ながら、そのマジック関数はまだ完全にはサポートされていません:「IPythonとの1つの違いは、IJuliaカーネルが現在「マジック」をサポートしていないことです。これは、異なる言語でコードを実行するための%または%%が前に付いた特別なコマンドです」
IJuliaノートブックでPythonコードを実行する方法はありますか?
Juliaスニペット(またはother言語)をIPythonノートブック内で実行するには、文字列_'Julia'
_をdefault
に追加しますScriptMagics
クラスの__script_magics_default
_メソッドのリスト:
/usr/lib/python3.4/site-packages/IPython/core/magics/script.py
_または/usr/lib/python2.7/site-packages/IPython/core/magics/script.py
_。_# like this:
defaults = [
'sh',
'bash',
'Perl',
'Ruby',
'python',
'python2',
'python3',
'pypy',
'Julia', # add your own magic
]
_
_%load_ext Julia.magic
_を使用するには、ここで_setup.py
_を実行する必要があります。
更新(09/04/2014):_setup.py
_ファイルが移動されましたpyjulia.jl:
Pkg.add("IJulia")
がファイルシステムのリポジトリを複製するときに取得するもの:
_cd ~/.Julia/v0.3/IJulia/python/ Sudo python2 setup.py install
_
現在、これはPython2でのみ機能します。 Python3は以下について不満を述べています:
_ImportError: No module named 'core'
_
拡張機能をロードしようとしたが、問題なくインストールされた。
それをインストールした後、Python2内からこれを行うこともできます。
_from Julia import Julia
j = Julia()
arr = j.run('[1:10]')
type(arr) # numpy.ndarray
_
ノートブックセルでShellモードの構文を使用します。
_!Julia my_script.jl
_
実際にはrunningpython必要なコンテキストのコードですが、Pythonジュリア内:
_using PyCall
@pyimport math
println(math.pi)
_
ノートブックセルでShellモードの構文を使用します。
_;python my_script.py
_
onlyJulia(またはJuliaからのみ他の言語を呼び出す場所)のノートブック全体を実行する場合は、より明確な解決策があります。まず、ジュリアを起動して
Pkg.add("IJulia")
iJuliaパッケージを取得します。次にできます
ipython notebook --profile Julia
ノートブックにはJuliaがネイティブ(デフォルト)言語として含まれます。
i/D Pythonノートブックで記述されているDavid Sandersとその 優れたJuliaチュートリアル へのh/t; ビデオはこちら 。
別のオプションは Beaker を使用することです。 RとPythonを組み合わせた チュートリアルノートブック が利用可能です。 Juliaの使い方も同じくらい簡単です。
完成するには この良い答え 、ハックなしで、システムファイルを変更せずに the %%script
magic :
In [1]: %%script Julia
...: println("Hi from a Julia sub-process")
...: a = [1:10]
セルがサブプロセスで実行されたことに注意してください。セルで行われたことは、残りのIPythonセッションではアクセスできません。
In [2]: print("Hi from the main IPython process")
...: print(a) # <-- not available from the Julia code, will fail !
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-2-c5a4f3535135> in <module>()
----> 1 print(a)
NameError: name 'a' is not defined
クリーンでナイスな方法はこのノートブックで説明されています: https://github.com/binder-examples/Julia-python/blob/master/python-and-Julia.ipynb 。
IPythonマジック(%Julia <Julia code>
Pythonでインライン化、および%%Julia
セル)、しかし、結果は非常に印象的です。2つのPythonおよびJuliaプロセスは、同じ変数とメモリを使用できます。