Jupyter cannot find the Julia 1.11 kernel

There are some posts concerning the upgrade to version 1.11 with juliaup, but I cannot solve a problem that I have with Jupyter: it cannot find the new julia kernel. I’m sorry if someone feels that my question has been answered, but I am stuck and I do not know how to move forward. Thank you for your patience.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

I just installed Julia by means of “juliaup”. The upgrade went fine, perfect, except that now my Jupyter notebooks cannot access the Julia 1.11 kernel.

In my Anaconda terminal I can see that version 1.11 is installed:

In Jupyterlab, the new kernel seems installed:

image

However, Jupyterlab cannot find it, it keeps trying to connect:

image

It tries to, but it never connects.

My impression is that perhaps something to do with the Windows PATH has gone wrong, but I do not know how to fix it.

Can you suggest any hints. I appreciate your patience.

1 Like

You need to open Julia and run

pkg> build IJulia

after running juliaup (or add IJulia if it is not already installed for that version, but it sounds like it’s already installed).

See IJulia broken on update — re-build IJulia when updating Julia? · Issue #857 · JuliaLang/juliaup · GitHub

3 Likes

I already used …

build IJulia

.
but jupyter does not find the kernel. I also tried …

IJulia.installkernel("Julia", "--project=@.")

.
but it does not work either.

I spent the whole day with this problem, now I’m thinking of a drastic solution: perhaps I could uninstall Julia and Anaconda and re-install the again. In what order should I install them. Do you think it could work?

If you run Jupyter from the command line, then you should see an error message about why the kernel doesn’t start.

Try jupyter kernelspec list on the command line, and see if that shows the kernels installed by IJulia

1 Like

I’m having a similar problem. I’m trying to update several notebooks to the 1.11 kernel. When I try to change the kernel from the pulldown after the notebook comes up, 1.11 shows up as an option but I get the “connection to the server could not be established” message.

I’ve done build Julia and the notebooks come up fine in 1.10, but I cannot change the kernel. Bug in 1.11?

Make sure that IJulia is installed in the global environment.

(1.11 notebooks work fine for me.)

I did the nuclear option.

  1. delete .julia/environments/v1.11/manifest.toml
  2. delete .julia/compiled/v1.11

] instantiate

and nothing changed. IJulia is in the global environment. If it works for you,
something bizarre is happening to me and I will try again when 1.11.1 comes
out.

I also tried 1.12.Dev and got the same bad results.

I think the problem is the --project=@. option. Kernels without that connect properly, kernels with this option give a precompile error. Here is the start of the error message I get:

[ Info: Precompiling IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a] 
ERROR: LoadError: ArgumentError: Package REPL does not have StyledStrings in its dependencies:
- Note that the following manifests in the load path were resolved with a different
  julia version, which may be the cause of the error. Try to re-resolve them in the
  current version, or consider deleting them if that fails:
    /home/kevin/Manifest.toml (v1.10.4)
- You may have a partially installed environment. Try `Pkg.instantiate()`
  to ensure all packages in the environment are installed.
- Or, if you have REPL checked out for development and have
  added StyledStrings as a dependency but haven't updated your primary
  environment's manifest file, try `Pkg.resolve()`.
- Otherwise you may need to report an issue with REPL
Stacktrace:
 [1] macro expansion
   @ ./loading.jl:2211 [inlined]
 [2] macro expansion
   @ ./lock.jl:273 [inlined]
 [3] __require(into::Module, mod::Symbol)
   @ Base ./loading.jl:2183
 [4] #invoke_in_world#3
   @ ./essentials.jl:1088 [inlined]
 [5] invoke_in_world
   @ ./essentials.jl:1085 [inlined]
 [6] require(into::Module, mod::Symbol)
   @ Base ./loading.jl:2176
 [7] include
   @ ./Base.jl:557 [inlined]
 [8] 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, UInt128}}, source::String)
   @ Base ./loading.jl:2806
 [9] top-level scope
   @ stdin:4
in expression starting at /home/kevin/.julia/juliaup/julia-1.11.0+0.x64.linux.gnu/share/julia/stdlib/v1.11/REPL/src/REPL.jl:3
in expression starting at stdin:4
ERROR: LoadError: Failed to precompile REPL [3fa0cd96-eef1-5676-8a61-b3b8758bbffb] to "/home/kevin/.julia/compiled/v1.11/REPL/jl_Rt55lX".
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; flags::Cmd, cacheflags::Base.CacheFlags, reasons::Dict{String, Int64})
    @ Base ./loading.jl:3089
  [3] (::Base.var"#1081#1082"{Base.PkgId})()
    @ Base ./loading.jl:2477
  [4] mkpidlock(f::Base.var"#1081#1082"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
    @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.11.0+0.x64.linux.gnu/share/julia/stdlib/v1.11/FileWatching/src/pidfile.jl:95
  [5] #mkpidlock#6
    @ ~/.julia/juliaup/julia-1.11.0+0.x64.linux.gnu/share/julia/stdlib/v1.11/FileWatching/src/pidfile.jl:90 [inlined]
  [6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
    @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.11.0+0.x64.linux.gnu/share/julia/stdlib/v1.11/FileWatching/src/pidfile.jl:116
  [7] #invokelatest#2
    @ ./essentials.jl:1056 [inlined]
  [8] invokelatest
    @ ./essentials.jl:1051 [inlined]
  [9] maybe_cachefile_lock(f::Base.var"#1081#1082"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
    @ Base ./loading.jl:3613
 [10] maybe_cachefile_lock
    @ ./loading.jl:3610 [inlined]
 [11] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:2473
 [12] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2300
 [13] #invoke_in_world#3
    @ ./essentials.jl:1088 [inlined]
 [14] invoke_in_world
    @ ./essentials.jl:1085 [inlined]
 [15] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2287
 [16] macro expansion
    @ ./loading.jl:2226 [inlined]
 [17] macro expansion
    @ ./lock.jl:273 [inlined]
 [18] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2183
 [19] #invoke_in_world#3
    @ ./essentials.jl:1088 [inlined]
 [20] invoke_in_world
    @ ./essentials.jl:1085 [inlined]
 [21] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2176
 [22] include
    @ ./Base.jl:557 [inlined]
 [23] 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, UInt128}}, source::String)
    @ Base ./loading.jl:2806
 [24] top-level scope
    @ stdin:4
in expression starting at /home/kevin/.julia/packages/SoftGlobalScope/u4UzH/src/SoftGlobalScope.jl:1
in expression starting at stdin:4
ERROR: LoadError: Failed to precompile SoftGlobalScope [b85f4697-e234-5449-a836-ec8e2f98b302] to "/home/kevin/.julia/compiled/v1.11/SoftGlobalScope/jl_GX7fBf".
Stacktrace:

and deleting the Manifest.toml file in the current directory resolves that error.

5 Likes

That was it. Zapping Manifest.toml in the notebook directory did the job.

Deleting the Manifest.toml file also worked for me. I had to run Pkg.instantiate() but eventually everything went fine.

Thank you

Sorry to disturb you again…

Now that Jupyterlab connects to the Julia kernel, it is not possible to, for example, see the list of packages installed by means of “]st”. This had always worked for me.

That’s a known issue, just use the regular Pkg API (Pkg.status()) until this gets fixed

Can you link to the issue?

Sorry was on my phone this morning - it’s

1 Like