问题描述
我找到了一个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]