如何将 Julia 包导入 Python

Sha*_*yan 6 python julia

人们可以通过该包来使用 Julia 的内置模块和函数juliacall。例如:

>>> from juliacall import Main as jl
>>> import numpy as np

# Create a 2*2 random matrix
>>> arr = jl.rand(2,2)

>>> arr
<jl [0.28133223988783074 0.22498491616860727; 0.008312971104033062 0.12927167014532326]>

# Check whether Numpy can recognize the shape of the array or not
>>> np.array(arr).shape
(2, 2)

>>> type(np.array(arr))
<class 'numpy.ndarray'>
Run Code Online (Sandbox Code Playgroud)

然后我很好奇是否可以将已安装的 julia 包导入到 Python 中?例如,假设有人想要导入Flux.jl到 Python 中。有办法实现这一点吗?

Sha*_*yan 5

我通过仔细查看 GitHub页面第二个示例的图片找到了它juliacall。根据该示例,我可以通过执行以下步骤进行导入: Flux.jl

>>> from juliacall import Main as jl
>>> jl.seval("using Flux")
Run Code Online (Sandbox Code Playgroud)

此外,还可以在 Python 中使用以下命令安装任何已注册的 Julia 包Pkg

>>> from juliacall import Main as jl
>>> jl.Pkg.add("Flux")

# After a successful installation

>>> jl.Pkg.status()
Status `C:\Users\Shayan\miniconda3\envs\im\julia_env\Project.toml`
  [587475ba] Flux v0.14.10
  [6099a3de] PythonCall v0.9.15

# This indicates that the installation was successful
Run Code Online (Sandbox Code Playgroud)

附加说明

可以使用可在 Python 中pyjulia安装的包pip install julia在 Python 中使用 Julia 包。之后,应输入以下命令:

>>> import julia
>>> julia.install()

# Then

>>> from julia import Pkg
>>> Pkg.add("Flux")

# After a successful installation
>>> Pkg.status()
Status `C:\Users\Shayan\.julia\environments\v1.10\Project.toml`
  [587475ba] Flux v0.14.10

# This indicates that the installation was successful

>>> from julia import Flux
Run Code Online (Sandbox Code Playgroud)

你也可以说,from julia import Flux as flx请注意,juliacall建议使用。