LoadError: InitError: While Precompiling in new Environment - julia

I wanted to start using dedicated environments for all my julia projects, but activating the new environment and using packages (eg. Plots.jl) results in Precompiling that fails with the following error:
Activating environment at `~/Documents/baro/Project.toml`
julia> using Plots
[ Info: Precompiling Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80]
ERROR: LoadError: InitError: could not load library "/home/marius/.julia/artifacts/08ab4b2de494e1d61e581ab1fbd610b0b4d1876f/lib/libavdevice.so"
libx264.so.157: cannot open shared object file: No such file or directory
Stacktrace:
[1] dlopen(::String, ::UInt32; throw_error::Bool) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Libdl/src/Libdl.jl:109
[2] dlopen at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Libdl/src/Libdl.jl:109 [inlined] (repeats 2 times)
[3] __init__() at /home/marius/.julia/packages/FFMPEG_jll/tCUYA/src/wrappers/x86_64-linux-gnu.jl:231
[4] _include_from_serialized(::String, ::Array{Any,1}) at ./loading.jl:697
[5] _require_search_from_serialized(::Base.PkgId, ::String) at ./loading.jl:781
[6] _require(::Base.PkgId) at ./loading.jl:1006
[7] require(::Base.PkgId) at ./loading.jl:927
[8] require(::Module, ::Symbol) at ./loading.jl:922
[9] include(::Module, ::String) at ./Base.jl:377
[10] top-level scope at none:2
[11] eval at ./boot.jl:331 [inlined]
[12] eval(::Expr) at ./client.jl:449
[13] top-level scope at ./none:3
during initialization of module FFMPEG_jll
in expression starting at /home/marius/.julia/packages/FFMPEG/vocw2/src/FFMPEG.jl:3
ERROR: LoadError: Failed to precompile FFMPEG [c87230d0-a227-11e9-1b43-d7ebe4e7570a] to /home/marius/.julia/compiled/v1.4/FFMPEG/TGvga_eB360.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
[3] _require(::Base.PkgId) at ./loading.jl:1029
[4] require(::Base.PkgId) at ./loading.jl:927
[5] require(::Module, ::Symbol) at ./loading.jl:922
[6] include(::Module, ::String) at ./Base.jl:377
[7] top-level scope at none:2
[8] eval at ./boot.jl:331 [inlined]
[9] eval(::Expr) at ./client.jl:449
[10] top-level scope at ./none:3
in expression starting at /home/marius/.julia/packages/Plots/LWw1t/src/Plots.jl:15
ERROR: Failed to precompile Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80] to /home/marius/.julia/compiled/v1.4/Plots/ld3vC_eB360.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
[3] _require(::Base.PkgId) at ./loading.jl:1029
[4] require(::Base.PkgId) at ./loading.jl:927
[5] require(::Module, ::Symbol) at ./loading.jl:922
This also happens for some other packages like ControlSystems.
The julia version is 1.4.2 but I was able to reproduce this error with 1.5.0 and on a different computer with 1.3.1 on it. Both systems are runnning Ubuntu 20.04 LTS.
What I tried so far was:
Rebuilding the package Pkg.build()
Check that the file supposed to load exists (it existed)
Update libx264
Deleting all packages in .julia folder and and reinstalling everything using Pkg.instantiate()
Any help to get the packages running will be greatly appreciated as I really like the idea of having dedicated environments for every project. Also on 1.3.1 even after switching to the default environment the error is still occuring.

The issue seems to lay in the FFMPEG package.
The following solved the issue for me:
Remove FFMPEG. Then delete the folder which is given in the error message. In your case: "/home/marius/.julia/artifacts/08ab4b2de494e1d61e581ab1fbd610b0b4d1876f/lib/libavdevice.so"
Then add FFPEG again which results in a change in the Manifest.toml which does not happen if you just remove FFMPEG:
Updating `~/.julia/environments/v1.3/Manifest.toml`
[1270edf5] ↓ x264_jll v2020.7.14+0 ⇒ v2019.5.25+2
Try: using FFMPEG, Plots.
I was able to precompile Plots then.

Related

Error Using Julia Genie - How to fix Genie load error?

PS.: I've tried to google it before post, but couldn't find anything useful.
I'm using:
Julia Version 1.4.1
Genie v2.0.3
I am new to Julia language, just finished the "Introduction to julia" and started the "Get Started with Genie".
I had no problems/errors during the package installation, but when tried to use Genie, it showed the error below:
using Genie.Router
[ Info: Precompiling Genie [c43c736e-a2d1-11e8-161f-af95117fbd1e]
ERROR: LoadError: LoadError: LoadError: LoadError: UndefVarError: #invokelatest not defined
Stacktrace:
[1] #macroexpand#38 at ./expr.jl:108 [inlined]
[2] macroexpand at ./expr.jl:107 [inlined]
[3] docm(::LineNumberNode, ::Module, ::Any, ::Any, ::Bool) at ./docs/Docs.jl:523 (repeats 2 times)
[4] #doc(::LineNumberNode, ::Module, ::String, ::Vararg{Any,N} where N) at ./boot.jl:463
[5] include(::Module, ::String) at ./Base.jl:377
[6] include(::String) at /home/regis/.julia/packages/Genie/b0FAv/src/Genie.jl:4
[7] top-level scope at /home/regis/.julia/packages/Genie/b0FAv/src/Genie.jl:42
[8] include(::Module, ::String) at ./Base.jl:377
[9] top-level scope at none:2
[10] eval at ./boot.jl:331 [inlined]
[11] eval(::Expr) at ./client.jl:449
[12] top-level scope at ./none:3
in expression starting at /home/regis/.julia/packages/Genie/b0FAv/src/Commands.jl:26
in expression starting at /home/regis/.julia/packages/Genie/b0FAv/src/Commands.jl:11
in expression starting at /home/regis/.julia/packages/Genie/b0FAv/src/Commands.jl:11
in expression starting at /home/regis/.julia/packages/Genie/b0FAv/src/Genie.jl:42
ERROR: Failed to precompile Genie [c43c736e-a2d1-11e8-161f-af95117fbd1e] to /home/regis/.julia/compiled/v1.4/Genie/8eazC_3Abxq.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
[3] _require(::Base.PkgId) at ./loading.jl:1029
[4] require(::Base.PkgId) at ./loading.jl:927
[5] require(::Module, ::Symbol) at ./loading.jl:922
How to fix this error?
Is there a reason why you're using Julia 1.4.1? Your problem might just resolve itself if you update to the latest stable version of Julia (1.6.2).
update Julia to 1.6 and it should work fine. Also use Genie v3.3.0 or above. Genie is continuously involving(with new features and bug fixes) try to use latest tagged version
In Project.toml add a section
[compat]
Genie = "3.3.0"
and while in Pkg mode ]
Pkg(1.6)> up # use up to update the package
More about compatibility: https://pkgdocs.julialang.org/v1/compatibility/

Julia in Jupyter: kernel error ("Failed to precompile in IJulia")

Having added Julia to Jupyter, I encounter the following problem:
I wonder if there is a fix for this? For example, by changing the path to \.julia to a local drive (C:\ in my case is in fact not).
Julia Version 1.2.0
Commit c6da87ff4b (2019-08-20 00:03 UTC)
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: Intel(R) Xeon(R) CPU E3-1284L v4 # 2.90GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-6.0.1 (ORCJIT, broadwell)
julia> Pkg.status()
Status `C:\Users\xxxxxx\.julia\environments\v1.2\Project.toml`
[7073ff75] IJulia v1.21.1
EDIT: actually typing using IJulia in the command line returns:
julia> using IJulia
[ Info: Precompiling IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a]
ERROR: LoadError: Blosc not installed properly, run Pkg.build("ZMQ"), restart Ju
lia and try again
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] top-level scope at C:\Users\xxxxxxx\.julia\packages\ZMQ\ItfqT\src\ZMQ.jl:14
[3] include at .\boot.jl:328 [inlined]
[4] include_relative(::Module, ::String) at .\loading.jl:1094
[5] include(::Module, ::String) at .\Base.jl:31
[6] top-level scope at none:2
[7] eval at .\boot.jl:330 [inlined]
[8] eval(::Expr) at .\client.jl:432
[9] top-level scope at .\none:3
in expression starting at C:\Users\xxxxxxx\.julia\packages\ZMQ\ItfqT\src\ZMQ.jl:
13
ERROR: LoadError: Failed to precompile ZMQ [c2297ded-f4af-51ae-bb23-16f91089e4e1
] to C:\Users\xxxxxxx\.julia\compiled\v1.2\ZMQ\CaaO6.ji.
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1253
[3] _require(::Base.PkgId) at .\loading.jl:1013
[4] require(::Base.PkgId) at .\loading.jl:911
[5] require(::Module, ::Symbol) at .\loading.jl:906
[6] include at .\boot.jl:328 [inlined]
[7] include_relative(::Module, ::String) at .\loading.jl:1094
[8] include(::Module, ::String) at .\Base.jl:31
[9] top-level scope at none:2
[10] eval at .\boot.jl:330 [inlined]
[11] eval(::Expr) at .\client.jl:432
[12] top-level scope at .\none:3
in expression starting at C:\Users\xxxxxxx\.julia\packages\IJulia\yLI42\src\IJul
ia.jl:36
ERROR: Failed to precompile IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a] to C:\
Users\xxxxxxx\.julia\compiled\v1.2\IJulia\nfu7T.ji.
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1253
[3] _require(::Base.PkgId) at .\loading.jl:1013
[4] require(::Base.PkgId) at .\loading.jl:911
[5] require(::Module, ::Symbol) at .\loading.jl:906
My working solution:
rm -rfd ~/.julia/compiled
In the julia REPL:
using Pkg
Pkg.update()
Pkg.precompile()
Assuming we previously installed / updated IJulia, then from Julia REPL:
using IJulia
installkernel("Julia")
At this point launch the notebook from the command line
jupyter notebook --browser="brave"
I ran into the same problem when I tried to add IJulia:
julia > using Pkg
julia > Pkg.add("IJulia")
This produced similar errors to what you posted. My solution was to remove the .julia directory in my home directory:
$ rm -rf ~/.julia
Then I restarted julia and proceeded to install IJulia using the commands above, and it worked.

How use julia package "Mathematica"?

I added the Mathematica package (https://github.com/JuliaInterop/Mathematica.jl) to julia 1.3.1.
Now if I use command...
using Mathematica
I get this error:
[ Info: Precompiling Mathematica [32681abc-2ee8-5d23-a06a-fe3af83833d6]
┌ Warning: Package Mathematica does not have MathLink in its dependencies:
│ - If you have Mathematica checked out for development and have
│ added MathLink as a dependency but haven't updated your primary
│ environment's manifest file, try `Pkg.resolve()`.
│ - Otherwise you may need to report an issue with Mathematica
└ Loading MathLink into Mathematica from project dependency, future warnings for Mathematica are suppressed.
ERROR: LoadError: LoadError: UndefVarError: #mmimport not defined
Stacktrace:
[1] top-level scope
[2] eval at ./boot.jl:330 [inlined]
[3] top-level scope at /Users/murray/.julia/packages/Mathematica/W4UIg/src/Mathematica.jl:36
[4] include at ./boot.jl:328 [inlined]
[5] include_relative(::Module, ::String) at ./loading.jl:1105
[6] include(::Module, ::String) at ./Base.jl:31
[7] top-level scope at none:2
[8] eval at ./boot.jl:330 [inlined]
[9] eval(::Expr) at ./client.jl:425
[10] top-level scope at ./none:3
in expression starting at /Users/murray/.julia/packages/Mathematica/W4UIg/src/Mathematica.jl:36
in expression starting at /Users/murray/.julia/packages/Mathematica/W4UIg/src/Mathematica.jl:34
ERROR: Failed to precompile Mathematica [32681abc-2ee8-5d23-a06a-fe3af83833d6] to /Users/murray/.julia/compiled/v1.3/Mathematica/cqgUM_XJ2Lx.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1283
[3] _require(::Base.PkgId) at ./loading.jl:1024
[4] require(::Base.PkgId) at ./loading.jl:922
[5] require(::Module, ::Symbol) at ./loading.jl:917
How do I correct this?
Per Chris’s comment, the suggestion is to use MathLink.jl. I talked to the package maintainer for Mathematica and added to deprecation warning to the readme as to avoid future issues.

Julia Distributions package installation woes

I wish to use the Distributions package in Julia, but can't get to first base. This is what happens when I try adding and using the package:
(v1.1) pkg> add Distributions
Updating registry at `C:\Users\Philip\.julia\registries\General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
Resolving package versions...
Updating `C:\Users\Philip\.julia\environments\v1.1\Project.toml`
[no changes]
Updating `C:\Users\Philip\.julia\environments\v1.1\Manifest.toml`
[no changes]
julia> using Distributions
[ Info: Precompiling Distributions [31c24e10-a181-5473-b8eb-7969acd0382f]
ERROR: LoadError: InitError: C:\Users\Philip\.julia\packages\SpecialFunctions\fvheQ\deps\usr\bin\libopenspecfun.dll cannot be opened, Please re-run Pkg.build("fvheQ"), and restart Julia.
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] check_deps() at C:\Users\Philip\.julia\packages\SpecialFunctions\fvheQ\deps\deps.jl:20
[3] __init__() at C:\Users\Philip\.julia\packages\SpecialFunctions\fvheQ\src\SpecialFunctions.jl:12
[4] _include_from_serialized(::String, ::Array{Any,1}) at .\loading.jl:633
[5] _require_search_from_serialized(::Base.PkgId, ::String) at .\loading.jl:713
[6] _require(::Base.PkgId) at .\loading.jl:937
[7] require(::Base.PkgId) at .\loading.jl:858
[8] require(::Module, ::Symbol) at .\loading.jl:853
[9] include at .\boot.jl:326 [inlined]
[10] include_relative(::Module, ::String) at .\loading.jl:1038
[11] include(::Module, ::String) at .\sysimg.jl:29
[12] top-level scope at none:2
[13] eval at .\boot.jl:328 [inlined]
[14] eval(::Expr) at .\client.jl:404
[15] top-level scope at .\none:3
during initialization of module SpecialFunctions
in expression starting at C:\Users\Philip\.julia\packages\StatsFuns\2QE7p\src\StatsFuns.jl:6
ERROR: LoadError: Failed to precompile StatsFuns [4c63d2b9-4356-54db-8cca-17b64c39e42c] to C:\Users\Philip\.julia\compiled\v1.1\StatsFuns\530lR.ji.
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1197
[3] _require(::Base.PkgId) at .\loading.jl:960
[4] require(::Base.PkgId) at .\loading.jl:858
[5] require(::Module, ::Symbol) at .\loading.jl:853
[6] include at .\boot.jl:326 [inlined]
[7] include_relative(::Module, ::String) at .\loading.jl:1038
[8] include(::Module, ::String) at .\sysimg.jl:29
[9] top-level scope at none:2
[10] eval at .\boot.jl:328 [inlined]
[11] eval(::Expr) at .\client.jl:404
[12] top-level scope at .\none:3
in expression starting at C:\Users\Philip\.julia\packages\Distributions\tfkz4\src\Distributions.jl:3
ERROR: Failed to precompile Distributions [31c24e10-a181-5473-b8eb-7969acd0382f] to C:\Users\Philip\.julia\compiled\v1.1\Distributions\xILW0.ji.
Stacktrace:
[1] error(::String) at .\error.jl:33
[2] compilecache(::Base.PkgId, ::String) at .\loading.jl:1197
[3] _require(::Base.PkgId) at .\loading.jl:960
[4] require(::Base.PkgId) at .\loading.jl:858
[5] require(::Module, ::Symbol) at .\loading.jl:853
So something's gone wrong and the first line of the error message asks me to Please re-run Pkg.build("fvheQ"), and restart Julia but I think that syntax is for Julia 0.6, prior to the re-vamped Pkg REPL.
Questions
What's an updated version of the Julia 0.6 command Pkg.build("fvheQ"). I'm using Julia 1.1.1.
So far I've always found adding packages worked smoothly in Julia. If it's not too broad a question, what's a good strategy to resolve package installation problems like this?
That's a bug in the error printing. You actually want to run Pkg.build("SpecialFunctions") , which should redownload the shared library libopenspecfun.

julia JuMP with v0.7

I tried building JuMP after compiling v0.7 but am getting errors:
ERROR: LoadError: Failed to precompile ReverseDiffSparse to /Users/MYUSER/.julia/lib/v0.7/ReverseDiffSparse.ji.
Stacktrace:
[1] error at ./error.jl:33 [inlined]
[2] compilecache(::Base.PkgId) at ./loading.jl:1208
[3] _require(::Base.PkgId) at ./loading.jl:974
[4] require(::Module, ::Symbol) at ./loading.jl:874
[5] include at ./boot.jl:295 [inlined]
[6] include_relative(::Module, ::String) at ./loading.jl:1067
[7] include(::Module, ::String) at ./sysimg.jl:26
[8] top-level scope
[9] eval at ./boot.jl:298 [inlined]
[10] top-level scope at ./<missing>:3
in expression starting at /Users/MYUSER/.julia/v0.7/JuMP/src/JuMP.jl:21
ERROR: Failed to precompile JuMP to /Users/MYUSER/.julia/lib/v0.7/JuMP.ji.
Stacktrace:
[1] error at ./error.jl:33 [inlined]
[2] compilecache(::Base.PkgId) at ./loading.jl:1208
[3] _require(::Base.PkgId) at ./loading.jl:1003
[4] require(::Module, ::Symbol) at ./loading.jl:874
How do I interpret these / how can I build JuMP for the latest version 0.7?
If you look at the original error message you'll probably see that StaticArrays (one of JuMP's indirect dependencies) does not load on 0.7. Anyway Julia 0.7 is in a pre-alpha state; there are no tagged prereleases of it yet as of today. It has lots of cool features, but I'd only recommend using it at this point if you're comfortable fixing broken packages and deprecation warnings.

Resources