我试图在 julia 中加载自定义模块,但我总是收到以下错误:
ERROR: foo not found
in require at loading.jl:47
其中 foo 是以下模块:
module foo
bar() = "foo"
export bar
end
位于“/home/.../julia/modules/”,我还添加了:
push!(LOAD_PATH, "/home/.../julia/modules/")
到我的 ~/.juliarc.jl 文件。我错过了什么?顺便说一句,我也重新安装了julia v0.3.10,没有效果。
还有一件事,如果我包含该文件,我就可以使用该模块:
> include("../modules/test.jl")
> using foo
> bar()
> "bar"
有效。不过应该没必要吧?
最佳答案
将文件命名为模块是 Julia 中的惯例,尤其是在使用 using
和 import
而不包含相应的模块定义文件时。
看看函数的定义require
通过 using
隐式调用以加载 loading.jl 中的包下面。
...
...
function find_in_path(name::AbstractString, wd = pwd())
isabspath(name) && return name
base = name
if endswith(name,".jl")
base = name[1:end-3]
else
name = string(base,".jl")
end
...
...
如果您运行 using foo
,julia 将在 LOAD_PATH
中查找 foo.jl
。
关于 Julia 加载自定义模块时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32579939/