Julia如何处理丢失的包?
那么,如果您没有安装packageJulia如何处理丢失的包?,julia,Julia,那么,如果您没有安装packageFoo,那么Julia使用Foo对语句做了什么呢?据我所知,Julia开始搜索Julia\u LOAD\u PATH,但如何搜索 在JULIA\u LOAD\u PATH的根级别,必须有一个名为Foo.jl的目录,其中Foo部分可能不区分大小写,而.jl后缀是可选的 在这个Foo.jl目录中,必须有一个源文件名Foo.jl,其中包含一个模块Foo?,使用隐式调用,间接调用: 上面的源代码显示,name上没有额外的操作,这意味着Foo部分应该区分大小写(当前取决于
Foo
,那么Julia使用Foo对语句做了什么呢?据我所知,Julia开始搜索Julia\u LOAD\u PATH
,但如何搜索
在JULIA\u LOAD\u PATH
的根级别,必须有一个名为Foo.jl
的目录,其中Foo
部分可能不区分大小写,而.jl
后缀是可选的
在这个Foo.jl
目录中,必须有一个源文件名Foo.jl
,其中包含一个模块Foo
?,使用隐式调用,间接调用:
上面的源代码显示,name
上没有额外的操作,这意味着Foo
部分应该区分大小写(当前取决于文件系统,请参见下面的注释)。而且目录名不必与文件名兼容,只要目录位于LOAD\u路径中,它就可以是任何内容 嗯,案例可能取决于操作系统?@maasha是的,你是对的,但只要合并,这种行为可能会改变。我还认为“src”硬编码是不好的。可能在七月发表:这是Julia 0.5
function find_in_path(name::AbstractString, wd = pwd())
isabspath(name) && return name
base = name
# this is why `.jl` suffix is optional
if endswith(name,".jl")
base = name[1:end-3]
else
name = string(base,".jl")
end
if wd !== nothing
isfile(joinpath(wd,name)) && return joinpath(wd,name)
end
for prefix in [Pkg.dir(); LOAD_PATH]
path = joinpath(prefix, name)
isfile(path) && return abspath(path)
path = joinpath(prefix, base, "src", name)
isfile(path) && return abspath(path)
path = joinpath(prefix, name, "src", name)
isfile(path) && return abspath(path)
end
return nothing
end