📜  如何在 Julia 中导入Python包?

📅  最后修改于: 2021-11-25 04:38:06             🧑  作者: Mango

Julia 是一种用于数值计算的高级、高性能、动态编程语言。用户可以将任意Python模块和库导入 Julia。 PyCall包用于从 Julia 代码调用Python 。您可以从任何 Julia 代码中使用 PyCall,包括在 Julia 模块中。并使用Pkg.add(“PyCall”)将此包添加到 Julia 环境中

PyCall提供了许多通过PyObject类型在 Julia 中操作Python对象的例程在大多数情况下, PyCall会根据Python对象的运行时检查自动将适当的类型转换为 Julia 类型。

在 Julia 中导入Python包。请按照以下步骤操作:

示例 1:

Julia
# Julia program to import math python package
using Pkg
 
# add PyCall package
Pkg.add("PyCall")  
 
# use PyCall
using PyCall       
 
# import python library
@pyimport math     
 
print(math.sin(90))


Julia
# Julia program to import numpy python library
using Pkg
 
# add PyCall package
Pkg.add("PyCall")     
 
# use PyCall package
using PyCall          
 
# import python library
@pyimport numpy       
 
# or np = pyimport("numpy")
 
# define array using numpy
array1 = numpy.array([1, 2, 3, 4,
                      5, 6, 7, 8, 9])  
 
# print array
print(array1)
print('\n')
 
# print array mean
print(numpy.mean(array1))


Julia
ENV["PYTHON"]="C:\\Users\\hi\\AppData\\Local\\Programs\\Python\\Python37"
Pkg.build("PyCall")


Julia
@pyimport cantera as ct
ct.Solution("gri30.xml")


输出:

示例 1

示例 2:

朱莉娅

# Julia program to import numpy python library
using Pkg
 
# add PyCall package
Pkg.add("PyCall")     
 
# use PyCall package
using PyCall          
 
# import python library
@pyimport numpy       
 
# or np = pyimport("numpy")
 
# define array using numpy
array1 = numpy.array([1, 2, 3, 4,
                      5, 6, 7, 8, 9])  
 
# print array
print(array1)
print('\n')
 
# print array mean
print(numpy.mean(array1))

输出:

示例 2

使用 PyCall 在 Julia 中调用本地包:

使用以下命令运行非标准包(并且是Python IDLE 的本地包)或使用不同的环境而不是 Julia 在调用 @pyimport 时选择的标准Python环境。执行以下两行后,停止并重新启动 Julia REPL。请注意,提供的位置对应于您的Python.exe 所在的目录。就我而言,它是 C:\\Users\\hi\\AppData\\Local\\Programs\\ Python\\Python37。

朱莉娅

ENV["PYTHON"]="C:\\Users\\hi\\AppData\\Local\\Programs\\Python\\Python37"
Pkg.build("PyCall")

重新启动 Julia 后,您可以使用通常的pyimport调用本地安装的相应包。让我们看一个例子,我在本地环境中安装了一个名为“cantera”的包,用于热化学计算。然后我会使用:

朱莉娅

@pyimport cantera as ct
ct.Solution("gri30.xml")