# Cannot get Gtk.jl onto Repl.it

**URL:** <https://discourse.julialang.org/t/cannot-get-gtk-jl-onto-repl-it/33664>\
**Category:** New to Julia\
**Created:** [January 22, 2020, 3:00pm UTC](https://discourse.julialang.org/t/cannot-get-gtk-jl-onto-repl-it/33664 "2020-01-22T15:00:47Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![aschimmichanga](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aschimmichanga/32/11998_2.png) [@aschimmichanga](https://discourse.julialang.org/u/aschimmichanga)\
**Post date:** [January 22, 2020, 3:00pm UTC](https://discourse.julialang.org/t/cannot-get-gtk-jl-onto-repl-it/33664/1 "2020-01-22T15:00:47Z")

</div>

Why doesn’t Repl.it’s Julia REPL recognize the GTK.jl package?

```julia
using Pkg
Pkg.add("Gtk")

```

`using Gtk` gives an error

---

<div class="post-metadata">

**Author:** ![avik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/avik/32/17_2.png) [@avik](https://discourse.julialang.org/u/avik)\
**Post date:** [January 22, 2020, 4:21pm UTC](https://discourse.julialang.org/t/cannot-get-gtk-jl-onto-repl-it/33664/2 "2020-01-22T16:21:03Z")

</div>

I havent tried this, but I would imagine GTK needs a GUI, while repl.it is primarily a command line utility.

---

<div class="post-metadata">

**Author:** ![aschimmichanga](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aschimmichanga/32/11998_2.png) [@aschimmichanga](https://discourse.julialang.org/u/aschimmichanga)\
**Post date:** [January 22, 2020, 6:21pm UTC](https://discourse.julialang.org/t/cannot-get-gtk-jl-onto-repl-it/33664/3 "2020-01-22T18:21:36Z")

</div>

Would this stack track confirm your theory?

```julia
error during bootstrap:
LoadError("main.jl", 3, UndefVarError(:Pgk))
rec_backtrace at /buildworker/worker/package_linux64/build/src/stackwalk.c:94
record_backtrace at /buildworker/worker/package_linux64/build/src/task.c:217 [inlined]
jl_throw at /buildworker/worker/package_linux64/build/src/task.c:417
jl_undefined_var_error at /buildworker/worker/package_linux64/build/src/rtutils.c:130
jl_eval_global_var at /buildworker/worker/package_linux64/build/src/interpreter.c:346 [inlined]
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:392
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:322
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:411
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:362 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:773
jl_interpret_toplevel_thunk_callback at /buildworker/worker/package_linux64/build/src/interpreter.c:885
Interpreter frame (ip: 0)
Core.CodeInfo(code=Array{Any, (3,)}[
  Expr(:call, Base.getproperty, :Pgk, :(:add)),
  Expr(:call, SSAValue(1), "Gtk"),
  Expr(:return, SSAValue(2))], codelocs=Array{Int32, (3,)}[1, 1, 1], method_for_inference_limit_heuristics=nothing, ssavaluetypes=3, linetable=Array{Any, (1,)}[Core.LineInfoNode(mod=Main, method=Symbol("top-level scope"), file=:none, line=0, inlined_at=0)], ssaflags=Array{UInt8, (0,)}[], slotflags=Array{UInt8, (0,)}[], slotnames=Array{Any, (0,)}[], inferred=false, inlineable=false, propagate_inbounds=false, pure=false)jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:894
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:764
jl_parse_eval_all at /buildworker/worker/package_linux64/build/src/ast.c:883
jl_load at /buildworker/worker/package_linux64/build/src/toplevel.c:826
exec_program at /gocode/src/github.com/replit/prybar/languages/julia/pry.h:48
runtime.asmcgocall at /usr/lib/go-1.10/src/runtime/asm_amd64.s:688

```

---

<div class="post-metadata">

**Author:** ![AndiMD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/andimd/32/6531_2.png) [@AndiMD](https://discourse.julialang.org/u/AndiMD)\
**Post date:** [January 22, 2020, 6:42pm UTC](https://discourse.julialang.org/t/cannot-get-gtk-jl-onto-repl-it/33664/4 "2020-01-22T18:42:25Z")

</div>

The error looks like `Pkg` was misspelled as `Pgk` in main.jl.

---

<div class="post-metadata">

**Author:** ![aschimmichanga](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aschimmichanga/32/11998_2.png) [@aschimmichanga](https://discourse.julialang.org/u/aschimmichanga)\
**Post date:** [January 22, 2020, 7:09pm UTC](https://discourse.julialang.org/t/cannot-get-gtk-jl-onto-repl-it/33664/5 "2020-01-22T19:09:35Z")

</div>

Haha my mistake. This is what I meant (stack trace after loading the GTK package and trying to precompile with ‘using Gtk’: @avik

```julia
ERROR: LoadError: Failed to precompile Graphics [a2bd30eb-e257-
5431-a919-1863eab51364] to /home/runner/.julia/compiled/v1.1/Gr
aphics/DwlUf.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1197
 [3] _require(::Base.PkgId) at ./loading.jl:960
 [4] require(::Base.PkgId) at ./loading.jl:858
 [5] require(::Module, ::Symbol) at ./loading.jl:853
 [6] include at ./boot.jl:326 [inlined] [7] include_relative(::Module, ::String) at ./loading.jl:1038
 [8] include(::Module, ::String) at ./sysimg.jl:29 [9] top-level scope at none:2
 [10] eval at ./boot.jl:328 [inlined] [11] eval(::Expr) at ./client.jl:404
 [12] top-level scope at ./none:3in expression starting at /home/runner/.julia/packages/Gtk/mVhm
L/src/Gtk.jl:27
error during bootstrap:LoadError("main.jl", 1, ErrorException("Failed to precompile Gt
k [4c0ca9eb-093a-5379-98c5-f87ac0bbbf44] to /home/runner/.julia/compiled/v1.1/Gtk/Vjnq0.ji."))
rec_backtrace at /buildworker/worker/package_linux64/build/src/
stackwalk.c:94record_backtrace at /buildworker/worker/package_linux64/build/s
rc/task.c:217 [inlined]
jl_throw at /buildworker/worker/package_linux64/build/src/task.
c:417
error at ./error.jl:33
compilecache at ./loading.jl:1197
_require at ./loading.jl:960
require at ./loading.jl:858
require at ./loading.jl:853
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2219
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1571 [inlined]
call_require at /buildworker/worker/package_linux64/build/src/toplevel.c:397 [inlined]
eval_import_path at /buildworker/worker/package_linux64/build/src/toplevel.c:432
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:630
jl_parse_eval_all at /buildworker/worker/package_linux64/build/src/ast.c:883
jl_load at /buildworker/worker/package_linux64/build/src/toplevel.c:826
exec_program at /gocode/src/github.com/replit/prybar/languages/julia/pry.h:48
runtime.asmcgocall at /usr/lib/go-1.10/src/runtime/asm_amd64.s:688

```

---

<div class="post-metadata">

**Author:** ![AndiMD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/andimd/32/6531_2.png) [@AndiMD](https://discourse.julialang.org/u/AndiMD)\
**Post date:** [January 24, 2020, 7:30pm UTC](https://discourse.julialang.org/t/cannot-get-gtk-jl-onto-repl-it/33664/6 "2020-01-24T19:30:20Z")

</div>

I’m not familiar with repl.it, but when I use the Julia 1.1 interpreter there, the first thing that fails while adding `Gtk` is precompiling its dependency `Cairo`, iirc it tries to install version 0.6 (which is quite old). This may cause the subsequent errors in the `Graphics` or `Gtk` precompilation.

Is there a way to install Julia1.3 there and try again?
