I could be able to run Makie, say plot a simple line, by executing the Julia code in WSL 2. However, when I tried to run the same code with VS Code REPL, it didn’t work. So, I decided to give Persistent Session a try. I set the shell to my bash shell (which has already defined the $DISPLAY so that it can show GUI through X server). But still not work, below is the error that I got. Note that my OpenGL version in WSL 2 is GL_VERSION = 4.5 (Compatibility Profile) Mesa 21.3.0-devel (git-259e26e 2021-09-16 focal-oibaf-ppa)
. As I’ve said, I can run using external Julia REPL, but not in VS Code. Any solution for this problem? Thanks.
julia> using GLMakie
julia> lines(x, y)
┌ Warning: GLFW couldn't create an OpenGL window.
│ This likely means, you don't have an OpenGL capable Graphic Card,
│ or you don't have an OpenGL 3.3 capable video driver installed.
│ Have a look at the troubleshooting section in the GLMakie readme:
│ https://github.com/JuliaPlots/Makie.jl/tree/master/GLMakie#troubleshooting-opengl.
└ @ GLMakie ~/.julia/packages/GLMakie/TViqo/src/screen.jl:336
Display Error: ERROR: GLFWError (NOT_INITIALIZED): The GLFW library is not initialized
Stacktrace:
[1] _ErrorCallbackWrapper(code::Int32, description::Cstring)
@ GLFW ~/.julia/packages/GLFW/BWxfF/src/callback.jl:43
[2] WindowHint
@ ~/.julia/packages/GLFW/BWxfF/src/glfw3.jl:492 [inlined]
[3] GLFW.Window(; name::String, resolution::Tuple{Int64, Int64}, debugging::Bool, major::Int64, minor::Int64, windowhints::Vector{Tuple{UInt32, Integer}}, contexthints::Vector{Tuple{UInt32, Integer}}, visible::Bool, focus::Bool, fullscreen::Bool, monitor::Nothing, share::GLFW.Window)
@ GLFW ~/.julia/packages/GLFW/BWxfF/src/glfw3.jl:316
[4] GLMakie.Screen(; resolution::Tuple{Int64, Int64}, visible::Bool, title::String, kw_args::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ GLMakie ~/.julia/packages/GLMakie/TViqo/src/screen.jl:328
[5] Screen
@ ~/.julia/packages/GLMakie/TViqo/src/screen.jl:301 [inlined]
[6] global_gl_screen
@ ~/.julia/packages/GLMakie/TViqo/src/screen.jl:247 [inlined]
[7] global_gl_screen(resolution::Tuple{Int64, Int64}, visibility::Bool, tries::Int64)
@ GLMakie ~/.julia/packages/GLMakie/TViqo/src/screen.jl:394
[8] global_gl_screen
@ ~/.julia/packages/GLMakie/TViqo/src/screen.jl:393 [inlined]
[9] scene2image(scene::Scene)
@ GLMakie ~/.julia/packages/GLMakie/TViqo/src/display.jl:32
[10] backend_show(#unused#::GLMakie.GLBackend, io::IOContext{Base64.Base64EncodePipe}, m::MIME{Symbol("image/png")}, scene::Scene)
@ GLMakie ~/.julia/packages/GLMakie/TViqo/src/display.jl:44
[11] show(io::Base64.Base64EncodePipe, m::MIME{Symbol("image/png")}, scene::Scene; update::Bool)
@ Makie ~/.julia/packages/Makie/PFSZS/src/display.jl:113
[12] show
@ ~/.julia/packages/Makie/PFSZS/src/display.jl:107 [inlined]
[13] #show#906
@ ~/.julia/packages/Makie/PFSZS/src/display.jl:104 [inlined]
[14] show
@ ~/.julia/packages/Makie/PFSZS/src/display.jl:104 [inlined]
[15] #show#905
@ ~/.julia/packages/Makie/PFSZS/src/display.jl:103 [inlined]
[16] show(io::Base64.Base64EncodePipe, m::MIME{Symbol("image/png")}, fap::Makie.FigureAxisPlot)
@ Makie ~/.julia/packages/Makie/PFSZS/src/display.jl:103
[17] base64encode(::Function, ::MIME{Symbol("image/png")}, ::Vararg{Any, N} where N; context::Nothing)
@ Base64 /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Base64/src/encode.jl:209
[18] _binstringmime
@ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Base64/src/Base64.jl:46 [inlined]
[19] stringmime(m::MIME{Symbol("image/png")}, x::Makie.FigureAxisPlot; context::Nothing)
@ Base64 /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Base64/src/Base64.jl:43
[20] stringmime
@ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Base64/src/Base64.jl:43 [inlined]
[21] display(d::VSCodeServer.InlineDisplay, m::MIME{Symbol("image/png")}, x::Makie.FigureAxisPlot)
@ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/display.jl:53
[22] display(d::VSCodeServer.InlineDisplay, mime::String, x::Any)
@ Base.Multimedia ./multimedia.jl:216
[23] display(d::VSCodeServer.InlineDisplay, x::Makie.FigureAxisPlot)
@ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/display.jl:152
[24] #invokelatest#2
@ ./essentials.jl:708 [inlined]
[25] invokelatest
@ ./essentials.jl:706 [inlined]
[26] (::VSCodeServer.var"#58#62"{Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
@ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/eval.jl:180
[27] withpath(f::VSCodeServer.var"#58#62"{Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams}, path::String)
@ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/repl.jl:185
[28] (::VSCodeServer.var"#57#61"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
@ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/eval.jl:151
[29] hideprompt(f::VSCodeServer.var"#57#61"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})
@ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/repl.jl:36
[30] (::VSCodeServer.var"#56#60"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
@ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/eval.jl:122
[31] with_logstate(f::Function, logstate::Any)
@ Base.CoreLogging ./logging.jl:491
[32] with_logger
@ ./logging.jl:603 [inlined]
[33] (::VSCodeServer.var"#55#59"{VSCodeServer.ReplRunCodeRequestParams})()
@ VSCodeServer ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/eval.jl:197
[34] #invokelatest#2
@ ./essentials.jl:708 [inlined]
[35] invokelatest(::Any)
@ Base ./essentials.jl:706
[36] macro expansion
@ ~/.vscode-server/extensions/julialang.language-julia-1.4.0/scripts/packages/VSCodeServer/src/eval.jl:34 [inlined]
[37] (::VSCodeServer.var"#53#54")()
@ VSCodeServer ./task.jl:411