# Problem with Precompilation of Makie

**URL:** https://discourse.julialang.org/t/problem-with-precompilation-of-makie/96846
**Category:** New to Julia
**Created:** [March 30, 2023, 3:26pm UTC](https://discourse.julialang.org/t/problem-with-precompilation-of-makie/96846 "2023-03-30T15:26:58Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Lias23](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lias23/32/48156_2.png) [@Lias23](https://discourse.julialang.org/u/Lias23)
#### Post date: [March 30, 2023, 3:26pm UTC](https://discourse.julialang.org/t/problem-with-precompilation-of-makie/96846/1 "2023-03-30T15:26:58Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)
#### Post date: [March 30, 2023, 4:49pm UTC](https://discourse.julialang.org/t/problem-with-precompilation-of-makie/96846/2 "2023-03-30T16:49:40Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Lias23](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lias23/32/48156_2.png) [@Lias23](https://discourse.julialang.org/u/Lias23)
#### Post date: [March 30, 2023, 8:42pm UTC](https://discourse.julialang.org/t/problem-with-precompilation-of-makie/96846/3 "2023-03-30T20:42:16Z")

</div>

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

---

<div class="post-metadata">

### Author: ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)
#### Post date: [March 31, 2023, 4:34am UTC](https://discourse.julialang.org/t/problem-with-precompilation-of-makie/96846/4 "2023-03-31T04:34:11Z")

</div>

Glad you found a workaround. I found this issue

> **[FT\_New\_Face uses non-unicode filename encoding under Windows (#1098) · Issues...](https://gitlab.freedesktop.org/freetype/freetype/-/issues/1098)**
>
> When you use FT\_New\_Face(), you can supply a filename as narrow string (char\*). Via ft\_open\_face\_internal(), you end up in FT\_Stream\_New(), FT\_Stream\_Open(). Under builds/windows/ftsystem.c, this function is defined for...

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.
