已经有一些简短的答案,但我希望尽可能提供更完整的答案 .
当您运行 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页面 .