我在导入Julia中的模块时发现these instructions,但是却出现了一种奇怪的行为,我想知道这是否正常。
我的文件tst.jl
和Tmp.jl
是:
tst.jl
1 include("./Tmp.jl")
2 import Main.Tmp
3
4 Main.Tmp.greetings()
Tmp.jl
1 module Tmp
2 export greetings
3 function greetings()
4 println("Greetings Earthlings")
5 end
6 end
但是我的tst.jl
不能看到Tmp
,除非它在Main
下。
我的LOAD_PATH
看起来也很奇怪:
julia> LOAD_PATH
3-element Array{String,1}:
"@"
"@v#.#"
"@stdlib"
这是正常现象,还是我的安装有问题?
我尝试使用JuliaBox并得到
julia> LOAD_PATH
3-element Array{Any,1}:
"/opt/julia-0.6.2/local/share/julia/site/v0.6"
"/opt/julia-0.6.2/share/julia/site/v0.6"
"/home/jrun/.julia/v0.6"
但是,那是v0.6,而我在OpenSUSE Tumbleweed上使用了Julia v1.0.2。
我从https://julialang.org/downloads/下载了二进制文件,并手动将所有libs移到了相应的根目录。
答案 0 :(得分:4)
但是我的tst.jl除非在Main下,否则看不到Tmp。
否,您应该使用相对的模块路径,请参见Relative and absolute module paths
tst.jl
1 include("./Tmp.jl")
2 using .Tmp
3
4 greetings()
我的LOAD_PATH看起来也很奇怪:
别担心,这在Julia1.0时代是正常的。外部参考:https://discourse.julialang.org/t/interpreting-load-path-in-1-0/13529