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 yourPATH)
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