我有一个名为MAIN的软件包。在src文件夹中,我有以下文件:
src/
MAIN.jl
utils.jl
models.jl
在MAIN.jl内部,我有以下内容:
module MAIN
include("models.jl")
include("utils.jl")
end
utils.jl的内容是:
module utils
export foo
function foo()
return 1
end
end
然后我要在models.jl文件中的函数内使用foo函数。 现在我有以下内容:
module models
using ..utils
export bar
function bar()
return foo()
end
end # module
但是当我运行import MAIN
时,出现以下错误:LoadError: LoadError: UndefVarError: utils not defined
。
那么,在这种设置下,如何将foo函数导入到models.jl
文件中?
答案 0 :(得分:0)
问题的原因是import
呼叫的顺序错误。 import
语句按顺序求值,这意味着在评估utils
文件时未定义models.jl
模块。要解决此问题,请使用以下导入顺序:
module MAIN
include("utils.jl")
include("models.jl")
end