You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python的juliacall加载自定义Julia包并调用其函数

在Python中加载自定义Julia包MyPack并调用函数的方法

操作步骤

  1. 让Julia定位到自定义包
    你需要确保Julia能找到MyPack的位置,有两种可行方式:

    • 方式一:在Python中指定Julia的工作环境为MyPack所在目录
    • 方式二:将MyPack的父目录添加到Julia的LOAD_PATH加载路径中
  2. Python中加载包并调用函数的代码示例
    以下是两种路径处理方式的完整代码:

方式一:激活MyPack的Julia环境

from juliacall import Main as jl

# 激活MyPack对应的Julia环境(替换为你的MyPack实际路径)
jl.using("Pkg")
jl.Pkg.activate("./MyPack")

# 导入自定义包MyPack
jl.using("MyPack")

# 调用已导出的f1函数
result_f1 = jl.MyPack.f1(2, 3)
print(f"f1(2,3)的结果:{result_f1}")

# 调用未导出的g函数(必须通过模块名直接访问)
test_array = [1,2,3,4,5]
result_g = jl.MyPack.g(test_array)
print(f"g([1,2,3,4,5])的结果:{result_g}")

方式二:添加路径到Julia的LOAD_PATH

from juliacall import Main as jl

# 将MyPack的父目录加入Julia加载路径(替换为实际父目录路径)
jl.push!(jl.LOAD_PATH, "./")

# 导入自定义包MyPack
jl.using("MyPack")

# 调用函数
result_f1 = jl.MyPack.f1(5, 10)
print(f"f1(5,10)的结果:{result_f1}")

result_g = jl.MyPack.g([2,4,6,8,10])
print(f"g([2,4,6,8,10])的结果:{result_g}")

注意事项

  • 路径替换:请将代码中的./MyPack或./替换为你实际的MyPack包所在路径或其父目录路径
  • 未导出函数:g函数在Julia模块中未被export,必须通过jl.MyPack.g的形式调用,无法直接使用jl.g
  • 数据兼容:Python列表、numpy数组会自动转换为Julia数组类型,可直接传入g函数计算标准差

内容的提问来源于stack exchange,提问作者Przemyslaw Szufel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 15:15:57