【问题标题】:Julia - Error during Pkg.add() for random packagesJulia - 随机包的 Pkg.add() 期间出错
【发布时间】:2018-11-05 14:53:50
【问题描述】:

在尝试为某些 Julia 包运行 Pkg.add(...) 时,我们遇到了以下错误:

ERROR: Build process failed.
build!(::Array{String,1}, ::Set{Any}, ::String) at ./pkg/entry.jl:629
build!(::Array{String,1}, ::Set{Any}, ::String) at ./pkg/entry.jl:626 (repeats 2 times)
build!(::Array{String,1}, ::Dict{Any,Any}, ::Set{Any}) at ./pkg/entry.jl:637
build(::Array{String,1}) at ./pkg/entry.jl:652
resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}, ::Dict{String,VersionNumber}, ::Set{String}) at ./pkg/entry.jl:572
resolve(::Dict{String,Base.Pkg.Types.VersionSet}, ::Dict{String,Dict{VersionNumber,Base.Pkg.Types.Available}}, ::Dict{String,Tuple{VersionNumber,Bool}}, ::Dict{String,Base.Pkg.Types.Fixed}) at ./pkg/entry.jl:479
edit(::Function, ::String, ::Base.Pkg.Types.VersionSet, ::Vararg{Base.Pkg.Types.VersionSet,N} where N) at ./pkg/entry.jl:30
(::Base.Pkg.Entry.##1#3{String,Base.Pkg.Types.VersionSet})() at ./task.jl:335
Stacktrace:
 [1] sync_end() at ./task.jl:287
 [2] macro expansion at ./task.jl:303 [inlined]
 [3] add(::String, ::Base.Pkg.Types.VersionSet) at ./pkg/entry.jl:51
 [4] (::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}})() at ./pkg/dir.jl:36
 [5] cd(::Base.Pkg.Dir.##4#7{Array{Any,1},Base.Pkg.Entry.#add,Tuple{String}}, ::String) at ./file.jl:70
 [6] #cd#1(::Array{Any,1}, ::Function, ::Function, ::String, ::Vararg{String,N} where N) at ./pkg/dir.jl:36
 [7] add(::String) at ./pkg/pkg.jl:117

有趣的是,如果我们尝试为同一个包重新运行 Pkg.add(...),它会起作用! 例如,运行 Pkg.add("DataArrays") 首先失败并出现上述错误,但是在重新运行相同的命令后,它已正确安装。

底层 C/C++ 库是否可能会导致问题?

环境:

Docker 与 Debian GNU/Linux 8.6 (jessie) Julia 0.6.3

【问题讨论】:

  • 你确定它真的适用于第二个Pkg.add吗?可能是它只是不尝试重建。例如Pkg.test("DataArrays") 是否通过?
  • 第二次确实有效。你说“不尝试重建”是什么意思?

标签: docker package julia


【解决方案1】:

Julia 的早期版本不太稳定... 我解决各种问题的方法是 rm -rf ~/.julia 以便重新安装和重建所有软件包...我不知道为什么,但它可以工作

无论如何,julia 现在是 v1.1.0(在开发中,在发布中是 v1.0.1) 建议升级

【讨论】:

  • 这是我的后备方案,问题是我有大量的 Julia 代码,如果我升级它们会意外中断。
【解决方案2】:

您也可以尝试使用 0.7 版本,因为这个交叉版本应该在很大程度上兼容 0.6 和 1.0 代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多