Prz*_*fel 27 python python-3.x julia pycall
我找到了一个 Julia 函数,可以很好地完成我需要的工作。如何快速集成它以便能够从 Python 调用它?
假设函数是
f(x,y) = 2x.+y
Run Code Online (Sandbox Code Playgroud)
从 Python 中使用它的最佳和最优雅的方法是什么?
Prz*_*fel 30
假设您的 Python 和 Julia 已安装,您需要执行以下步骤。
运行 Julia 并安装 PyCall
using Pkg
pkg"add PyCall"
Run Code Online (Sandbox Code Playgroud)
将您的代码放入 Julia 包中
using Pkg
Pkg.generate("MyPackage")
Run Code Online (Sandbox Code Playgroud)
在src您将找到的文件夹中,将MyPackage.jl其编辑为如下所示:
module MyPackage
f(x,y) = 2x.+y
export f
end
Run Code Online (Sandbox Code Playgroud)
安装pyjulia
python -m pip install julia
Run Code Online (Sandbox Code Playgroud)
(在 Linux 系统上,您可能希望使用python3而不是python命令)
对于这一步,请注意,虽然可以将外部 Python 与 Julia 一起使用。但是,为了方便起见,可能值得考虑使用与 Julia 一起安装的 Python 作为PyCall. 在这种情况下,安装使用这样的命令:
%HOMEPATH%\.julia\conda\3\python -m pip install julia
Run Code Online (Sandbox Code Playgroud)
或在 Linux 上
~/.julia/conda/3/python -m pip install julia
Run Code Online (Sandbox Code Playgroud)
请注意,如果您JULIA_DEPOT_PATH定义了变量,则可以替换%HOMEPATH%\.julia或~/.julia/其值。
运行合适的 Python 并告诉它配置 Python-Julia 集成:
using Pkg
pkg"add PyCall"
Run Code Online (Sandbox Code Playgroud)
现在您已准备好调用您的 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]
Run Code Online (Sandbox Code Playgroud)
值得注意的是,与独立的 Julia 文件相比,此答案中提出的方法有几个优点,尽管不太推荐。优点包括:
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |