在IPython笔记本中运行Julia代码的最佳方法(或IJulia笔记本中的Python代码)

27 python ipython julia

我的目标是在IPython笔记本中只运行几行Julia,其中大部分代码都是Python用于某些实验......

我在这里找到了一个很好的示例笔记

http://nbviewer.ipython.org/github/JuliaLang/IJulia.jl/blob/master/python/doc/JuliaMagic.ipynb

现在我想知道如何为Julia安装IPython扩展(我主要使用IPython 2.1),以便我可以通过

%load_ext julia.magic
Run Code Online (Sandbox Code Playgroud)

我也是julia的新手,我想知道是否有"混合numpy和julia"的性能优势,如本笔记本所示(通过常规Python numpy或常规Julia代码)

当我正确理解这个概念时,如果我只对运行Julia代码感兴趣,我会使用IJulia笔记本(我成功设置)吗?

我安装了IJulia,我也可以运行IJulia笔记本,但实际上我只想在笔记本中加入一小部分Julia代码,其余的应该是Python/Cython.不幸的是,我读到魔术函数尚未得到完全支持:"与IPython的一个区别是IJulia内核目前不支持"magics",它是以%或%%为前缀的特殊命令,用于执行不同语言的代码"

有没有办法在IJulia笔记本中运行Python代码?

Sal*_*apa 26

在IPython笔记本中运行Julia


为了在IPython笔记本中运行Julia片段(或其他语言),我只需将字符串附加'julia'到类中default_script_magics_default方法列表ScriptMagics:

  • /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
]
Run Code Online (Sandbox Code Playgroud)

IPython*朱莉娅魔术*

朱莉娅魔术(双向)

要使用%load_ext julia.magic,您需要运行setup.py此处:

更新(2014年4月9日):该setup.py文件已移至pyjulia.jl:

Pkg.add("IJulia")克隆文件系统中的repo 时得到的结果:

cd ~/.julia/v0.3/IJulia/python/
sudo python2 setup.py install
Run Code Online (Sandbox Code Playgroud)

目前这仅适用于Python2.Python3抱怨:

ImportError: No module named 'core'
Run Code Online (Sandbox Code Playgroud)

当我尝试加载扩展时,但安装没有抱怨.

安装后,您也可以在Python2中执行此操作:

from julia import Julia
j = Julia()
arr = j.run('[1:10]')
type(arr) # numpy.ndarray
Run Code Online (Sandbox Code Playgroud)

从系统shell运行脚本

在笔记本单元格中使用shell模式语法:

!julia my_script.jl
Run Code Online (Sandbox Code Playgroud)



在IJulia笔记本中运行Python


使用PyCall

它并不是真正在你想要的上下文中运行 python代码,但你也可以在Julia中使用Python库:

using PyCall
@pyimport math
println(math.pi)
Run Code Online (Sandbox Code Playgroud)

从系统shell运行脚本

在笔记本单元格中使用shell模式语法:

;python my_script.py
Run Code Online (Sandbox Code Playgroud)


Jef*_*her 8

另一种选择是使用Beaker.他们有一个混合R和Python 的教程笔记本 ; 使用Julia同样容易.

  • 最近还有一项努力,将IPython的python不可知部分抽象为一个名为Jupyter的独立项目!http://jupyter.org/ (3认同)

Dav*_*son 8

如果你想运行一个只有 julia 的整个笔记本(或者你只从julia调用其他语言),那么有一个更清洁的解决方案.首先,启动julia并做

Pkg.add("IJulia")
Run Code Online (Sandbox Code Playgroud)

获得IJulia包.然后你可以

ipython notebook --profile julia
Run Code Online (Sandbox Code Playgroud)

并且您的笔记本将julia作为本机(默认)语言.

不是David Sanders和他用IPython笔记本写的优秀的julia教程 ; 视频在这里.