Problem with Precompilation of Makie

Hello,
I have faced a problem with installing Makie, I get this error

using Makie
[ Info: Precompiling Makie [ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a]
ERROR: LoadError: Could not load font file “C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\assets\fonts\TeXGyreHerosMakie-Regular.otf”
Stacktrace:
[1] error(s::String)
@ Base .\error.jl:35
[2] load_font
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\conversions.jl:951 [inlined]
[3] (::Makie.var"#212#213"{String})()
@ Makie C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\conversions.jl:968
[4] get!(default::Makie.var"#212#213"{String}, h::Dict{String, FreeTypeAbstraction.FTFont}, key::String)
@ Base .\dict.jl:481
[5] to_font(str::String)
@ Makie C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\conversions.jl:965
[6] to_font(fonts::MakieCore.Attributes, s::Symbol)
@ Makie C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\conversions.jl:999
[7] (::Makie.var"#1884#1887"{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\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\basic_recipes\text.jl:15
[8] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ Base .\essentials.jl:729
[9] invokelatest(::Any, ::Any, ::Vararg{Any})
@ Base .\essentials.jl:726
[10] (::Observables.OnAny)(value::Any)
@ Observables C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Observables\PHGQ8\src\Observables.jl:415
[11] #invokelatest#2
@ .\essentials.jl:729 [inlined]
[12] invokelatest
@ .\essentials.jl:726 [inlined]
[13] notify(observable::Observables.AbstractObservable)
@ Observables C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Observables\PHGQ8\src\Observables.jl:169
[14] plot!(plot::MakieCore.Text{Tuple{Vector{GeometryBasics.Point{2, Float32}}}})
@ Makie C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\basic_recipes\text.jl:66
[15] 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\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\interfaces.jl:432
[16] 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\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\interfaces.jl:344
[17] plot!
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\interfaces.jl:311 [inlined]
[18] plot!#167
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\interfaces.jl:295 [inlined]
[19] 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\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\MakieCore\6sckc\src\recipes.jl:38
[20] Makie.LineAxis(parent::Makie.Scene, attrs::MakieCore.Attributes)
@ Makie C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\makielayout\lineaxis.jl:388
[21] #LineAxis#1246
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\makielayout\lineaxis.jl:3 [inlined]
[22] initialize_block!(ax::Makie.Axis; palette::Nothing)
@ Makie C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\makielayout\blocks\axis.jl:326
[23] initialize_block!
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\makielayout\blocks\axis.jl:166 [inlined]
[24] _block(::Type{Makie.Axis}, ::Makie.Figure; bbox::Nothing, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ Makie C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\makielayout\blocks.jl:397
[25] block
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\makielayout\blocks.jl:295 [inlined]
[26] #
#1098
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\makielayout\blocks.jl:276 [inlined]
[27] Block
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\makielayout\blocks.jl:275 [inlined]
[28] 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\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\figureplotting.jl:50
[29] #poly#55
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\MakieCore\6sckc\src\recipes.jl:34 [inlined]
[30] top-level scope
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\precompiles.jl:6
[31] include(mod::Module, _path::String)
@ Base .\Base.jl:419
[32] include
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\Makie.jl:1 [inlined]
[33] macro expansion
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\precompiles.jl:16 [inlined]
[34] macro expansion
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\SnoopPrecompile\1XXT1\src\SnoopPrecompile.jl:62 [inlined]
[35] top-level scope
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\precompiles.jl:13
[36] include(mod::Module, _path::String)
@ Base .\Base.jl:419
[37] include(x::String)
@ Makie C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\Makie.jl:1
[38] top-level scope
@ C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\Makie.jl:331
[39] include
@ .\Base.jl:419 [inlined]
[40] 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:1554
[41] top-level scope
@ stdin:1
in expression starting at C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\precompile\shared-precompile.jl:4
in expression starting at C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\precompiles.jl:12
in expression starting at C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\packages\Makie\z1gJs\src\Makie.jl:1
in expression starting at stdin:1
ERROR: Failed to precompile Makie [ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a] to C:\Users\ΗΛΙΑΣ ΤΣΑΚΩΝΑΣ.julia\compiled\v1.8\Makie\jl_F4F7.tmp.
Stacktrace:
[1] error(s::String)
@ Base .\error.jl:35
[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
@ Base .\loading.jl:1707
[3] compilecache
@ .\loading.jl:1651 [inlined]
[4] _require(pkg::Base.PkgId)
@ Base .\loading.jl:1337
[5] _require_prelocked(uuidkey::Base.PkgId)
@ Base .\loading.jl:1200
[6] macro expansion
@ .\loading.jl:1180 [inlined]
[7] macro expansion
@ .\lock.jl:223 [inlined]
[8] require(into::Module, mod::Symbol)
@ Base .\loading.jl:1144

I have tried cleaning the Julia installation, Julia 1.9.0 and 1.6.7 but I always get some sort of error
I also tried running Julia with admin rights but still no result.

Maybe FreeType has a problem with the unicode characters in your user directory path? I’m not sure if that could be the issue as I assume somebody would have filed that already.

1 Like

That really was the problem, didn’t really expected it to be honest, thanks. I moved .julia to C:\ and it was successful.

Glad you found a workaround. I found this issue

There it says

I think it’s fair if you want to end it at that and to avoid the Windows encoding mess. At the end of the day, FreeType also provides FT_New_Memory_Face and FT_Open_Face , so a truly interested consumer can open the file on its own and use one of those functions.

So sounds like we could open the font file ourselves in Makie and pass the handle to FreeType instead of the file path, avoiding the issue altogether.