julia加载自定义模块时出错

时间:2015-09-15 07:16:31

标签: julia

我正在尝试在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"

的工作原理。但它没有必要,对吗?

1 个答案:

答案 0 :(得分:4)

将文件命名为模块是Julia中的约定,尤其是在使用usingimport而不包含相应的模块定义文件时。

查看函数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会在foo.jl中查找LOAD_PATH