MacOS Plots install problem with FFMPEG

I see that other people had issues similar to mine last year with installing Plots.jl due to issues with FFMPEG, but it doesn’t look like the cause is the same. I’m just starting Julia, looking to use it instead of Python or R on a new machine learning project. I’m running macOS Catalina 10.15.6 on a 5k iMac. I have Julia 1.5.1 installed, and also JuliaPro-1.5.0-1. FFMPEG is installed via Home-brew
% which ffmpeg
/usr/local/bin/ffmpeg
Python is 3.8.5 installed using penv.
I have tried the build suggestion, and Pkg.update(), uninstalling, Pkg.gc(), reinstalling a specific version, etc.
Here is the error:
julia> using Plots
[ Info: Precompiling Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80]
Deps path: /Users/alun/.julia/packages/FFMPEG/guN1x/src/…/deps/deps.jl
ERROR: LoadError: FFMPEG not installed properly, run ] build FFMPEG, restart Julia and try again

So I do that:
(@v1.5) pkg> build FFMPEG
Building FFMPEG → ~/.julia/packages/FFMPEG/guN1x/deps/build.log
┌ Error: Error building FFMPEG:
ERROR: LoadError: LoadError: SystemError: opening file “/Applications/Julia-1.5.app/Contents/Resources/julia/share/julia/stdlib/v1.5/BinaryProvider/JuliaTeam.toml”: No such file or directory

So the error is around this part:
[10] redirect_download_target(::String) at /Users/alun/.julia/packages/BinaryProvider/IjWSK/src/JuliaTeam.jl:35
[11] (::BinaryProvider.JuliaTeam.var"#1#2"{BinaryProvider.var"#54#81"{BinaryProvider.var"#36#63"{String}}})(::String, ::String) at /Users/alun/.julia/packages/BinaryProvider/IjWSK/src/JuliaTeam.jl:18
[12] download(::String, ::String; verbose::Bool) at /Users/alun/.julia/packages/BinaryProvider/IjWSK/src/PlatformEngines.jl:608
[13] download_verify(::String, ::String, ::String; verbose::Bool, force::Bool, quiet_download::Bool) at /Users/alun/.julia/packages/BinaryProvider/IjWSK/src/PlatformEngines.jl:692

I fire up TextMate and have a look at this JuliaTeam.jl and I find:
function redirect_download_target(url::String)
package_server = Pkg.pkg_server()
package_server == nothing && return url
# Hot load the prefixes from the TOML file
if isfile(normpath(joinpath(DEPOT_PATH[1],“registries”,“JuliaPro”,“JuliaTeam.toml”)))
prefixes = TOML.parsefile(normpath(joinpath(DEPOT_PATH[1],“registries”,“JuliaPro”,“JuliaTeam.toml”)))[“prefixes”]
else
prefixes = TOML.parsefile(normpath(joinpath(Sys.STDLIB,“BinaryProvider”,“JuliaTeam.toml”)))[“prefixes”]
end

This last line seems to be the problem. It is looking for a file called JuliaTeam.toml in the Julia app package, and there is no such file, even though there is one at ~/.julia/packages/BinaryProvider/IjWSK

I also see:
**Julia>**Sys.STDLIB
“/Applications/Julia-1.5.app/Contents/Resources/julia/share/julia/stdlib/v1.5”

I’m really not sure how to correct this. I don’t get such issues with Ruby gems or R packages, and a bit surprised to get it here.

Thanks for any suggestions.

Alun

Not sure what has happened overnight, but I understand some things a bit more. It looks like Julia and JuliaPro have separate installations of packages (in ~/.julia/environments). If I use IJulia and select Julia 1.5.0 (which I’m guessing uses the v1.5 toml files), then in fact, after upgrading to Julia 1.5.1 it does precompile. However, I still get failures trying to use it, around get_color_palette, or it saying that it doesn’t understand the variables I’m supplying (which comes from examples in the draft book Statistics with Julia). Not encouraging. For example, the first example on Home · Plots, the Lorenz Attractor, gives
MethodError: no method matching get_color_palette(::Symbol, ::RGBA{Float64}, ::Int64)
Closest candidates are:
get_color_palette(::Any, ::Any) at /Users/alun/.julia/packages/PlotUtils/NS6Tf/src/colorschemes.jl:330
get_color_palette(!Matched::ColorGradient, ::Any) at /Users/alun/.julia/packages/PlotUtils/NS6Tf/src/colorschemes.jl:331

So I went back to using JuliaPro, and here it also now precompiles, and here I do actually see plots. A bit perplexed by these installation problems, but I guess I’m ok for the moment. The flakiness of what I would presume is a very commonly used library is a concern.

I am having the same problem but I have only installed JuliaPro_V1.5.1.
When I run

using Pkg
Pkg.build(“HDF5”)
I get the following error:
Error: Error building Blosc:
│ ┌ Warning: platform_key() is deprecated, use platform_key_abi() from now on
│ │ caller = ip:0x0
│ └ @ Core :-1
│ ERROR: LoadError: SystemError: opening file “/Applications/JuliaPro-1.5.1-1.app/Contents/Resources/julia/Contents/Resources/julia/share/julia/stdlib/v1.5/BinaryProvider/JuliaTeam.toml”: No such file or directory
│ Stacktrace:
│ [1] systemerror(::String, ::Int32; extrainfo::Nothing) at ./error.jl:168
│ [2] #systemerror#48 at ./error.jl:167 [inlined]
│ [3] systemerror at ./error.jl:167 [inlined]
│ [4] open(::String; lock::Bool, read::Nothing, write::Nothing, create::Nothing, truncate::Nothing, append::Nothing) at ./iostream.jl:284
│ [5] open at ./iostream.jl:273 [inlined]
│ [6] open(::Base.var"#294#295"{Tuple{}}, ::String; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at ./io.jl:323
│ [7] open at ./io.jl:323 [inlined]
│ [8] read at ./io.jl:408 [inlined]
│ [9] parsefile at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/ext/TOML/src/TOML.jl:50 [inlined]
│ [10] redirect_download_target(::String) at /Users/d3k137/.julia/packages/BinaryProvider/IjWSK/src/JuliaTeam.jl:35
│ [11] (::BinaryProvider.JuliaTeam.var"#1#2"{BinaryProvider.var"#54#81"{BinaryProvider.var"#36#63"{String}}})(::String, ::String) at /Users/d3k137/.julia/packages/BinaryProvider/IjWSK/src/JuliaTeam.jl:18
│ [12] download(::String, ::String; verbose::Bool) at /Users/d3k137/.julia/packages/BinaryProvider/IjWSK/src/PlatformEngines.jl:608
│ [13] download_verify(::String, ::String, ::String; verbose::Bool, force::Bool, quiet_download::Bool) at /Users/d3k137/.julia/packages/BinaryProvider/IjWSK/src/PlatformEngines.jl:692
│ [14] install(::String, ::String; prefix::Prefix, tarball_path::String, force::Bool, ignore_platform::Bool, verbose::Bool) at /Users/d3k137/.julia/packages/BinaryProvider/IjWSK/src/Prefix.jl:314
│ [15] top-level scope at /Users/d3k137/.julia/packages/Blosc/lzFr0/deps/build.jl:45
│ [16] include(::String) at ./client.jl:457
│ [17] top-level scope at none:5
│ in expression starting at /Users/d3k137/.julia/packages/Blosc/lzFr0/deps/build.jl:41

Not sure how to fix this as I am new to Julia.

Does this happen also with vanilla Julia instead of JuliaPro?

1 Like

This was a JuliaPro issue, this issue has been fixed now, please run Pkg.update() in your JuliaPro v1.5.1-1 installation to apply the fix.