Error installing GLMakie

I just installed julia on a new PC (Windows 10) and I have problems precompiling GLMakie (or any other version of Makie). I have tried reinstalling everything but have not been successful.

julia> using GLMakie
[ Info: Precompiling GLMakie [e9467ef8-e4e7-5192-8a1a-b1aee30e663a]
ERROR: LoadError: Could not load font file "C:\Users\Víctor\.julia\packages\Makie\iECbF\assets\fonts\TeXGyreHerosMakie-Regular.otf"
Stacktrace:
  [1] load_font
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\conversions.jl:960 [inlined]
  [2] (::Makie.var"#217#219"{String})()
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\conversions.jl:978
  [3] get!(default::Makie.var"#217#219"{String}, h::Dict{String, FreeTypeAbstraction.FTFont}, key::String)
    @ Base .\dict.jl:468
  [4] (::Makie.var"#216#218"{String})()
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\conversions.jl:975
  [5] lock(f::Makie.var"#216#218"{String}, l::ReentrantLock)
    @ Base .\lock.jl:229
  [6] to_font(str::String)
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\conversions.jl:974
  [7] to_font(fonts::MakieCore.Attributes, s::Symbol)
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\conversions.jl:1010
  [8] (::Makie.var"#1905#1908"{Base.RefValue{Vector{Int64}}, Observables.Observable{Vector{ColorTypes.RGBA{Float32}}}, Observables.Observable{Vector{Float32}}, Observables.Observable{Vector{GeometryBasics.Point{2, Float32}}}, Observables.Observable{Vector{Makie.GlyphCollection}}})(str::String, ts::Float64, f::Symbol, fs::MakieCore.Attributes, al::Tuple{Symbol, Symbol}, rot::Float32, jus::MakieCore.Automatic, lh::Float64, col::ColorTypes.RGBA{Float32}, scol::Tuple{Symbol, Float64}, swi::Int64, www::Int64, offs::Tuple{Float64, Float64})
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\basic_recipes\text.jl:15
  [9] #invokelatest#2
    @ .\essentials.jl:816 [inlined]
 [10] invokelatest
    @ .\essentials.jl:813 [inlined]
 [11] notify(observable::Observables.AbstractObservable)
    @ Observables C:\Users\Víctor\.julia\packages\Observables\PHGQ8\src\Observables.jl:169
 [12] plot!(plot::MakieCore.Text{Tuple{Vector{GeometryBasics.Point{2, Float32}}}})
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\basic_recipes\text.jl:66
 [13] plot!(scene::Makie.Scene, P::Type{MakieCore.Text{Tuple{GeometryBasics.Point{2, Float32}}}}, attributes::MakieCore.Attributes, input::Tuple{Observables.Observable{GeometryBasics.Point{2, Float32}}}, args::Observables.Observable{Tuple{Vector{GeometryBasics.Point{2, Float32}}}})
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\interfaces.jl:432
 [14] plot!(scene::Makie.Scene, P::Type{MakieCore.Text}, attributes::MakieCore.Attributes, args::Observables.Observable{GeometryBasics.Point{2, Float32}}; kw_attributes::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\interfaces.jl:344
 [15] plot!
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\interfaces.jl:311 [inlined]
 [16] #plot!#171
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\interfaces.jl:295 [inlined]
 [17] text!(::Makie.Scene, ::Vararg{Any}; attributes::Base.Pairs{Symbol, Any, NTuple{9, Symbol}, NamedTuple{(:text, :fontsize, :color, :visible, :align, :rotation, :font, :markerspace, :inspectable), Tuple{Observables.Observable{Any}, Observables.Observable{Any}, Observables.Observable{Any}, Observables.Observable{Any}, Observables.Observable{Tuple{Symbol, Symbol}}, Observables.Observable{Float32}, Observables.Observable{Any}, Symbol, Bool}}})
    @ MakieCore C:\Users\Víctor\.julia\packages\MakieCore\6sckc\src\recipes.jl:38
 [18] Makie.LineAxis(parent::Makie.Scene, attrs::MakieCore.Attributes)
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\makielayout\lineaxis.jl:388
 [19] Makie.LineAxis(parent::Makie.Scene; kwargs::Base.Pairs{Symbol, V, Tuple{Vararg{Symbol, N}}, NamedTuple{names, T}} where {V, N, names, T<:Tuple{Vararg{Any, N}}})
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\makielayout\lineaxis.jl:3
 [20] LineAxis
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\makielayout\lineaxis.jl:1 [inlined]
 [21] initialize_block!(ax::Makie.Axis; palette::Nothing)
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\makielayout\blocks\axis.jl:320
 [22] initialize_block!
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\makielayout\blocks\axis.jl:160 [inlined]
 [23] _block(::Type{Makie.Axis}, ::Makie.Figure; bbox::Nothing, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\makielayout\blocks.jl:374
 [24] _block
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\makielayout\blocks.jl:272 [inlined]
 [25] #_#1118
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\makielayout\blocks.jl:253 [inlined]
 [26] Block
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\makielayout\blocks.jl:252 [inlined]
 [27] plot(P::Type{MakieCore.Poly}, args::GeometryBasics.HyperRectangle{2, Int64}; axis::NamedTuple{(), Tuple{}}, figure::NamedTuple{(), Tuple{}}, kw_attributes::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol, Symbol}, NamedTuple{(:strokewidth, :strokecolor, :color), Tuple{Int64, Symbol, Tuple{Symbol, Float64}}}})
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\figureplotting.jl:50
 [28] plot
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\figureplotting.jl:31 [inlined]
 [29] #poly#55
    @ C:\Users\Víctor\.julia\packages\MakieCore\6sckc\src\recipes.jl:34 [inlined]
 [30] top-level scope
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\precompiles.jl:6
 [31] include
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\Makie.jl:1 [inlined]
 [32] macro expansion
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\precompiles.jl:16 [inlined]
 [33] macro expansion
    @ C:\Users\Víctor\.julia\packages\PrecompileTools\0yi7r\src\workloads.jl:74 [inlined]
 [34] top-level scope
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\precompiles.jl:13
 [35] include(x::String)
    @ Makie C:\Users\Víctor\.julia\packages\Makie\iECbF\src\Makie.jl:1
 [36] top-level scope
    @ C:\Users\Víctor\.julia\packages\Makie\iECbF\src\Makie.jl:333
 [37] top-level scope
    @ stdin:3
in expression starting at C:\Users\Víctor\.julia\packages\Makie\iECbF\precompile\shared-precompile.jl:4
in expression starting at C:\Users\Víctor\.julia\packages\Makie\iECbF\src\precompiles.jl:12
in expression starting at C:\Users\Víctor\.julia\packages\Makie\iECbF\src\Makie.jl:1
in expression starting at stdin:3
ERROR: LoadError: Failed to precompile Makie [ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a] to "C:\\Users\\Víctor\\.julia\\compiled\\v1.9\\Makie\\jl_7111.tmp".
Stacktrace:
 [1] top-level scope
   @ stdin:3
in expression starting at C:\Users\Víctor\.julia\packages\GLMakie\OVxAi\src\GLMakie.jl:1
in expression starting at stdin:3
ERROR: Failed to precompile GLMakie [e9467ef8-e4e7-5192-8a1a-b1aee30e663a] to "C:\\Users\\Víctor\\.julia\\compiled\\v1.9\\GLMakie\\jl_7228.tmp".

Any help is appreciated.

Which version of Julia are you using? What is the output of
using Pkg; Pkg.status()?

The version is:

julia> versioninfo()
Julia Version 1.9.2
Commit e4ee485e90 (2023-07-05 09:39 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 20 × 13th Gen Intel(R) Core(TM) i5-13600KF
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-14.0.6 (ORCJIT, goldmont)
  Threads: 1 on 20 virtual cores
julia> using Pkg;Pkg.status()
Project Prueba v0.1.0
Status `C:\Users\Víctor\Proyectos\julia\Prueba\Project.toml`
  [e9467ef8] GLMakie v0.8.6

Oh I’ve seen this before, I’m pretty sure freetype on windows has problems with unicode characters in file paths. And your name has an accent

1 Like

So you need to install your project in some other folder but C:\Users\Víctor… Is it also needed to move the hidden .julia folder somewhere else? How could that be achieved?

EDIT: Would it make sense to create an issue for Makie and say that Makie should check the installation path for unicode characters and terminate with a clear error message if any are found?

1 Like

I have used the Enviroment Variable DEPOT_PATH (link). Now the folder is C:\JuliaDepot and the installation is successful. It seems that the problem was in the accent.