java调用julia脚本_如何在julia中导入自定义模块

这篇博客详细解释了如何在Java中调用Julia脚本,并在Julia环境中导入不在LOAD_PATH路径内的自定义模块。通过指定模块的相对路径或添加目录到LOAD_PATH环境变量,可以解决找不到模块的问题。文章还提供了在启动文件中设置JULIA_LOAD_PATH的建议,以便Julia能自动发现并加载模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

已经有一些简短的答案,但我希望尽可能提供更完整的答案 .

当您运行 using MyModule 时,Julia仅在名为 LOAD_PATH 的目录列表中搜索它 . 如果您在Julia REPL中键入 LOAD_PATH ,您将得到如下内容:

2-element Array{ByteString,1}:

"/Applications/Julia-0.4.5.app/Contents/Resources/julia/local/share/julia/site/v0.4"

"/Applications/Julia-0.4.5.app/Contents/Resources/julia/share/julia/site/v0.4"

这些是Julia将在您键入 using Hello 时搜索要包含的模块的目录 . 在您提供的示例中,由于 Hello 不在您的 LOAD_PATH 中,因此Julia无法找到它 .

如果要包含本地模块,可以指定其相对于当前工作目录的位置 .

julia> include("./src/Hello.jl")

一旦包含该文件,您就可以正常运行 using Hello 以获得所有相同的行为 . 对于一次性脚本,这可能是最好的解决方案 . 但是,如果您发现自己经常需要 include() 某组目录,则可以将它们永久添加到 LOAD_PATH .

Adding directories to LOAD_PATH

如果您希望定期使用存储在Julia LOAD_PATH 之外的特定模块,则手动将目录添加到 LOAD_PATH 会很麻烦 . 在这种情况下,您可以将其他目录附加到 LOAD_PATH 环境变量 . 无论何时发出 import 或 using 命令,Julia都会自动搜索这些目录 .

一种方法是将以下内容添加到 .basrc , .profile , .zshrc .

export JULIA_LOAD_PATH="/path/to/module/storage/folder"

这会将该目录附加到Julia将搜索的标准目录中 . 如果你然后运行

julia> LOAD_PATH

它应该回来

3-element Array{ByteString,1}:

"/path/to/module/storage/folder"

"/Applications/Julia-0.4.5.app/Contents/Resources/julia/local/share/julia/site/v0.4"

"/Applications/Julia-0.4.5.app/Contents/Resources/julia/share/julia/site/v0.4"

您现在可以自由运行 using Hello 并且Julia会自动找到该模块(只要它存储在 /path/to/module/storage/folder 下面 .

有关更多信息,请查看Julia Docs的this页面 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值