TuringLang / Turing.jl

Bayesian inference with probabilistic programming.
https://turinglang.org
MIT License
2k stars 216 forks source link

Failing in precompiling dependencies #2271

Closed jinshisai closed 6 days ago

jinshisai commented 6 days ago

Hi, I am interested in using Turing and suffering from an issue. When I installed Turing, I saw the following message:

Precompiling project... ✗ Libtask ✗ NNlib ✗ Tracker ✗ Bijectors ✗ DynamicPPL ✗ DistributionsAD ✗ Turing 152 dependencies successfully precompiled in 43 seconds 7 dependencies errored. To see a full report either run import Pkg; Pkg.precompile() or load the packages

I cannot use Turing because of these dependencies failing in precompiling. Could you please help to solve this issue? The errors I faced when I tried using Turing in the Julia REPL are the followings. I am using M1 Mackbook pro and Julia v.1.7.3. Julia v.1.10.4 results a similar precompiling problem with a slightly different set of failing dependencies.


ERROR: LoadError: SystemError: opening file "~/.julia/packages/NNlib/FAI3o/deps/deps.jl": No such file or directory
Stacktrace:
  [1] systemerror(p::String, errno::Int32; extrainfo::Nothing)
    @ Base ./error.jl:174
  [2] #systemerror#68
    @ ./error.jl:173 [inlined]
  [3] systemerror
    @ ./error.jl:173 [inlined]
  [4] open(fname::String; lock::Bool, read::Nothing, write::Nothing, create::Nothing, truncate::Nothing, append::Nothing)
    @ Base ./iostream.jl:293
  [5] open
    @ ./iostream.jl:282 [inlined]
  [6] open(f::Base.var"#364#365"{String}, args::String; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base ./io.jl:328
  [7] open
    @ ./io.jl:328 [inlined]
  [8] read
    @ ./io.jl:436 [inlined]
  [9] _include(mapexpr::Function, mod::Module, _path::String)
    @ Base ./loading.jl:1249
 [10] include(mod::Module, _path::String)
    @ Base ./Base.jl:418
 [11] include(x::String)
    @ NNlib ~/.julia/packages/NNlib/FAI3o/src/NNlib.jl:1
 [12] top-level scope
    @ ~/.julia/packages/NNlib/FAI3o/src/NNlib.jl:8
 [13] include
    @ ./Base.jl:418 [inlined]
 [14] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::String)
    @ Base ./loading.jl:1318
 [15] top-level scope
    @ none:1
 [16] eval
    @ ./boot.jl:373 [inlined]
 [17] eval(x::Expr)
    @ Base.MainInclude ./client.jl:453
 [18] top-level scope
    @ none:1
in expression starting at ~/.julia/packages/NNlib/FAI3o/src/NNlib.jl:1
ERROR: LoadError: Failed to precompile NNlib [872c559c-99b0-510c-b3b7-b6c96a88d5cd] to ~/.julia/compiled/v1.7/NNlib/jl_MLQfet.
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:33
  [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, ignore_loaded_modules::Bool)
    @ Base ./loading.jl:1466
  [3] compilecache(pkg::Base.PkgId, path::String)
    @ Base ./loading.jl:1410
  [4] _require(pkg::Base.PkgId)
    @ Base ./loading.jl:1120
  [5] require(uuidkey::Base.PkgId)
    @ Base ./loading.jl:1013
  [6] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:997
  [7] include(mod::Module, _path::String)
    @ Base ./Base.jl:418
  [8] include(x::String)
    @ Tracker ~/.julia/packages/Tracker/e5fg8/src/Tracker.jl:1
  [9] top-level scope
    @ ~/.julia/packages/Tracker/e5fg8/src/Tracker.jl:76
 [10] include
    @ ./Base.jl:418 [inlined]
 [11] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::String)
    @ Base ./loading.jl:1318
 [12] top-level scope
    @ none:1
 [13] eval
    @ ./boot.jl:373 [inlined]
 [14] eval(x::Expr)
    @ Base.MainInclude ./client.jl:453
 [15] top-level scope
    @ none:1
in expression starting at ~/.julia/packages/Tracker/e5fg8/src/lib/array.jl:468
in expression starting at ~/.julia/packages/Tracker/e5fg8/src/Tracker.jl:1
ERROR: LoadError: Failed to precompile Tracker [9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c] to ~/.julia/compiled/v1.7/Tracker/jl_VqDPXD.
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:33
  [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, ignore_loaded_modules::Bool)
    @ Base ./loading.jl:1466
  [3] compilecache(pkg::Base.PkgId, path::String)
    @ Base ./loading.jl:1410
  [4] _require(pkg::Base.PkgId)
    @ Base ./loading.jl:1120
  [5] require(uuidkey::Base.PkgId)
    @ Base ./loading.jl:1013
  [6] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:997
  [7] include
    @ ./Base.jl:418 [inlined]
  [8] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::String)
    @ Base ./loading.jl:1318
  [9] top-level scope
    @ none:1
 [10] eval
    @ ./boot.jl:373 [inlined]
 [11] eval(x::Expr)
    @ Base.MainInclude ./client.jl:453
 [12] top-level scope
    @ none:1
in expression starting at ~/.julia/packages/DistributionsAD/p5Y9r/src/DistributionsAD.jl:1
ERROR: LoadError: Failed to precompile DistributionsAD [ced4e74d-a319-5a8a-b0ac-84af2272839c] to ~/.julia/compiled/v1.7/DistributionsAD/jl_01tAL6.
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:33
  [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, ignore_loaded_modules::Bool)
    @ Base ./loading.jl:1466
  [3] compilecache(pkg::Base.PkgId, path::String)
    @ Base ./loading.jl:1410
  [4] _require(pkg::Base.PkgId)
    @ Base ./loading.jl:1120
  [5] require(uuidkey::Base.PkgId)
    @ Base ./loading.jl:1013
  [6] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:997
  [7] include
    @ ./Base.jl:418 [inlined]
  [8] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::Nothing)
    @ Base ./loading.jl:1318
  [9] top-level scope
    @ none:1
 [10] eval
    @ ./boot.jl:373 [inlined]
 [11] eval(x::Expr)
    @ Base.MainInclude ./client.jl:453
 [12] top-level scope
    @ none:1
in expression starting at ~/.julia/packages/Turing/GMBTf/src/Turing.jl:1
ERROR: Failed to precompile Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0] to ~/.julia/compiled/v1.7/Turing/jl_l4Tfwt.
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:33
 [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, ignore_loaded_modules::Bool)
   @ Base ./loading.jl:1466
 [3] compilecache(pkg::Base.PkgId, path::String)
   @ Base ./loading.jl:1410
 [4] _require(pkg::Base.PkgId)
   @ Base ./loading.jl:1120
 [5] require(uuidkey::Base.PkgId)
   @ Base ./loading.jl:1013
 [6] require(into::Module, mod::Symbol)
   @ Base ./loading.jl:997```
Red-Portal commented 6 days ago

Have you tried with a fresh .julia directory?

jinshisai commented 6 days ago

It was now fixed. This line ERROR: LoadError: SystemError: opening file "~/.julia/packages/NNlib/FAI3o/deps/deps.jl": No such file or directory Stacktrace: was the main issue and I arrived at here. ] build created the missing file, deps.jl, and now precompiling both NNlib and Turing went well.

Thanks for your reply. I am closing this issue.