16  Julia 与 Python 的互操作

16.1 在 Julia 中调用 Python

目前推荐使用 PythonCall.jl。它的使用非常简单,就像下面这样:

using PythonCall

re = pyimport("re")
words = re.findall("[a-zA-Z]+", "PythonCall.jl is very useful!")
Python list: ['PythonCall', 'jl', 'is', 'very', 'useful']
说明
  • PythonCall.jl 定义了一套 Julia 和 Python 之间的类型转换规则,可以参考这里
  • 默认情况下,PythonCall.jl 会使用 CondaPkg.jl 来维护一个独立的 Python 环境。但有些时候,我们可能希望使用当前系统中的 Python 或 Conda 环境。这时可以参考这里来进行对应的配置。

16.2 在 Python 中调用 Julia

PythonCall.jl 还同时提供了姊妹包 juliacall 以实现在 Python 中调用 Julia。这里也提供了一个简单的例子:

import numpy as np
from juliacall import Main as jl

x = jl.rand(range(10), 3, 5)
np.sum(x, axis=0)