我找到了一个 Julia 函数,可以很好地完成我需要的工作。如何快速集成它以便能够从 Python 调用它?
假设函数是
f(x,y) = 2x.+y
从 Python 中使用它的最好和最优雅的方法是什么?
我找到了一个 Julia 函数,可以很好地完成我需要的工作。如何快速集成它以便能够从 Python 调用它?
假设函数是
f(x,y) = 2x.+y
从 Python 中使用它的最好和最优雅的方法是什么?
假设您的 Python 和 Julia 已安装,您需要执行以下步骤。
运行 Julia 并安装PyCall
using Pkg
pkg"add PyCall"
将您的代码放入 Julia 包中
using Pkg
Pkg.generate("MyPackage")
在src
您将找到的文件夹中,将MyPackage.jl
其编辑为如下所示:
module MyPackage
f(x,y) = 2x.+y
export f
end
安装pyjulia
python -m pip install julia
(在 Linux 系统上,您可能想要使用python3
而不是python
命令)
对于这一步,请注意虽然外部 Python 可以与 Julia 一起使用。但是,为了方便起见,可能值得考虑使用与 Julia 一起安装的 Python 作为PyCall
. 在这种情况下,安装使用这样的命令:
%HOMEPATH%\.julia\conda\3\python -m pip install julia
或在 Linux 上
~/.julia/conda/3/python -m pip install julia
请注意,如果您JULIA_DEPOT_PATH
定义了变量,则可以替换%HOMEPATH%\.julia
或~/.julia/
使用其值。
运行适当的 Python 并告诉它配置 Python-Julia 集成:
import julia
julia.install()
现在你可以调用你的 Julia 代码了:
>>> from julia import Pkg
>>> Pkg.activate(".\\MyPackage") #use the correct path
Activating environment at `MyPackage\Project.toml`
>>> from julia import MyPackage
>>> MyPackage.f([1,2],5)
[7,9]
值得注意的是,这个答案中提出的方法与独立的 Julia 文件相比有几个优点,虽然不太推荐,但这是可能的。优点包括: