What to do when command ```notebook()``` won't prompt a Jupyter installation?

TL;DR: How to make Julia find the jupyter kernel so Quarto can run?

I just installed a new version of Julia (1.8.5) and, given the problems I am dealing with, I assume the packages I had installed didn’t migrate to the new version.

I tried to render a qmd file, but it didn’t work. Then, I went back to the basics and followed the instructions on the Using Julia webpage from the Quarto website..

I reinstalled IJulia, however, when I ran notebook(), I didn’t get prompted with the option to install Jupyter, as the instructions said it’d happen

The first time you run notebook() , it will prompt you for whether it should install Jupyter. Hit enter to have it use the Conda.jl package to install a minimal Python+Jupyter distribution (via Miniconda) that is private to Julia (not in your PATH )

Instead, using notebook() opened a new tab on my browser for local Jupyter notebooks. In this tab, I can see folders like “Desktop” and “Documents” from my computer. In the Julia REPL, an information session was printed. It starts with [ Info: running setenv(`'C:\Users\hsd36\.julia\conda\3\Scripts\jupyter.exe' notebook`,["PATH=C:\\Users\\hsd36\\.julia\\conda\\3\\Library\\bin;, but it goes on.

Seeing no way to solve this, I followed ahead and installed Revise.jl and Conda.jl, and finished with Conda.add("jupyter-cache").

Then I tried quarto render test_quarto.qmd in a Powershell terminal, but it failed. It first says it’s starting the julia-1.8 kernel and then a list of files is listed. It ends with an error: ImportError: DLL load failed while importing _device: The specified module could not be found. When I simply try CRTL + Shift + K, a Quarto Preview terminal opens and informs me that Jupyter kernel 'julia-1.8' not found.

Does anyone know how to proceed from here? It seems the problem lies in the missing kernel. Ideally, I’d install a minimal Python distribution via Miniconda that is private to Julia. This installation should have been offered after the command notebook(), but sadly it didn’t.


Edit: I have checked the answers for a very similar question here in the Discord, but it was to no avail.

Edit 2: Here’s the output after I ran quarto check.

[>] Checking Quarto installation......OK
      Version: 1.2.313
      Path: C:\Users\hsd36\AppData\Local\Programs\Quarto\bin
      CodePage: 1252

[>] Checking basic markdown render....OK

[>] Checking Python 3 installation....OK
      Version: 3.9.5 (Conda)
      Path: C:/Users/hsd36/.julia/conda/3/python.exe
      Jupyter: 4.11.1
      Kernels: julia-1.6, julia-1.8, python3        

(\) Checking Jupyter engine render....Traceback (most recent call last):
  File "C:\Users\hsd36\AppData\Local\Programs\Quarto\share\jupyter\jupyter.py", line 21, in <module> 
    from notebook import notebook_execute, RestartKernel
  File "C:\Users\hsd36\AppData\Local\Programs\Quarto\share\jupyter\notebook.py", line 17, in <module>
    from nbclient import NotebookClient
  File "C:\Users\hsd36\.julia\conda\3\lib\site-packages\nbclient\__init__.py", line 6, in <module>   
    from .client import NotebookClient, execute  # noqa: F401
  File "C:\Users\hsd36\.julia\conda\3\lib\site-packages\nbclient\client.py", line 14, in <module>
    from jupyter_client import KernelManager
  File "C:\Users\hsd36\.julia\conda\3\lib\site-packages\jupyter_client\__init__.py", line 8, in <module>
    from .asynchronous import AsyncKernelClient  # noqa
  File "C:\Users\hsd36\.julia\conda\3\lib\site-packages\jupyter_client\asynchronous\__init__.py", line 1, in <module>
    from .client import AsyncKernelClient  # noqa
  File "C:\Users\hsd36\.julia\conda\3\lib\site-packages\jupyter_client\asynchronous\client.py", line 6, in <module>
    from jupyter_client.channels import HBChannel
  File "C:\Users\hsd36\.julia\conda\3\lib\site-packages\jupyter_client\channels.py", line 12, in <module>
    import zmq.asyncio
  File "C:\Users\hsd36\.julia\conda\3\lib\site-packages\zmq\__init__.py", line 103, in <module>
    from zmq import backend
  File "C:\Users\hsd36\.julia\conda\3\lib\site-packages\zmq\backend\__init__.py", line 31, in <module>
    raise original_error from None
  File "C:\Users\hsd36\.julia\conda\3\lib\site-packages\zmq\backend\__init__.py", line 26, in <module>
    _ns = select_backend(first)
  File "C:\Users\hsd36\.julia\conda\3\lib\site-packages\zmq\backend\select.py", line 31, in select_backend
    mod = import_module(name)
  File "C:\Users\hsd36\.julia\conda\3\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "C:\Users\hsd36\.julia\conda\3\lib\site-packages\zmq\backend\cython\__init__.py", line 6, in <module>
    from . import (
ImportError: DLL load failed while importing _device: The specified module could not be found.
[>] Checking Jupyter engine render....OK

In other words, Jupyter is already installed. You are running the notebook, congratulations!

1 Like

:slight_smile: I actually managed to locate the julia-1.8 kernel, but I still don’t know how to pass the path to Quarto.