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

2024-05-15 01:46:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是在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

我对julia也很陌生,我想知道“混合numpy和julia”是否有性能优势,如本笔记本中所示(优于常规pythonnumpy或常规julia代码)

当我正确理解这个概念时,如果我只想运行Julia代码,我会使用IJulia笔记本(我成功地设置了它)?

我安装了I Julia,我也可以运行IJulia笔记本,但实际上我只想在我的笔记本中有一小部分Julia代码,其余的应该是Python/Cython。 不幸的是,我读到magic函数还没有完全支持:“与IPython的一个区别是IJulia内核目前不支持“magics”,这是一个特殊的命令,前缀是%或%,用于以不同的语言执行代码。”

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


Tags: 代码orggithubhttp示例目标magicipython
3条回答

把茱莉亚放在一个IPython笔记本里


黑客

为了在IPython笔记本中运行Julia片段(或其他语言),我只需将字符串'julia'附加到_script_magics_default方法中ScriptMagics类的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
]

IPython *Julia magic*

朱莉娅魔术(双向)

要使用%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

目前这只适用于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



在IJulia笔记本中运行Python


使用PyCall

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

using PyCall
@pyimport math
println(math.pi)

从系统运行脚本

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

;python my_script.py

另一种选择是使用Beaker。它们有一个tutorial notebook可用于混合R和Python;使用Julia同样简单。

如果你想运行一整本只有julia的笔记本(或者你只从julia调用其他语言),那么有一个更干净的解决方案。首先,启动julia然后

Pkg.add("IJulia")

去拿IJulia的包裹。那你就可以

ipython notebook --profile julia

你的笔记本会有julia作为母语(默认)。

写信给大卫·桑德斯和他写在伊普顿笔记本上的excellent julia tutorialsvideo here

相关问题 更多 >

    热门问题