Jupyter Notebook中Julia 1.8.2内核启动失败求助
解决Anaconda中Julia内核无法启动的问题
问题描述
在Anaconda中单独创建Julia环境后,从base环境启动Jupyter Notebook并尝试创建Julia 1.8.2内核时,内核反复重启失败。多次通过Julia REPL安装IJulia包均出现预编译错误,终端提示找不到IJulia包路径,但Julia控制台执行Pkg.status()显示IJulia v1.23.3已安装。
终端错误输出
(base) user@Ideapad-320-14IKB:~$ jupyter notebook [I 2022-10-22 22:38:19.300 LabApp] JupyterLab extension loaded from /home/user/anaconda3/lib/python3.9/site-packages/jupyterlab [I 2022-10-22 22:38:19.300 LabApp] JupyterLab application directory is /home/user/anaconda3/share/jupyter/lab [I 22:38:19.304 NotebookApp] Serving notebooks from local directory: /home/user [I 22:38:19.304 NotebookApp] Jupyter Notebook 6.4.12 is running at: [I 22:38:19.304 NotebookApp] http://localhost:8888/?token=e67639f228570093a6050632d9de6e98870f034e2923bfb5 [I 22:38:19.304 NotebookApp] or http://127.0.0.1:8888/?token=e67639f228570093a6050632d9de6e98870f034e2923bfb5 [I 22:38:19.304 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [C 22:38:19.355 NotebookApp] To access the notebook, open this file in a browser: file:///home/user/.local/share/jupyter/runtime/nbserver-27914-open.html Or copy and paste one of these URLs: http://localhost:8888/?token=e67639f228570093a6050632d9de6e98870f034e2923bfb5 or http://127.0.0.1:8888/?token=e67639f228570093a6050632d9de6e98870f034e2923bfb5 [I 22:38:57.111 NotebookApp] New terminal with automatic name: 1 TermSocket.open: 1 TermSocket.open: Opened 1 [I 22:40:23.823 NotebookApp] Creating new notebook in [I 22:40:25.845 NotebookApp] Kernel started: c0c716fc-b629-46d7-aa29-44e1cb91c0fc, name: julia-1.8 ERROR: LoadError: ArgumentError: Package IJulia not found in current path. - Run `import Pkg; Pkg.add("IJulia")` to install the IJulia package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 in expression starting at /home/user/anaconda3/envs/julialang/share/julia/packages/IJulia/AQu2H/src/kernel.jl:1 [I 22:40:28.835 NotebookApp] KernelRestarter: restarting kernel (1/5), new random ports ERROR: LoadError: ArgumentError: Package IJulia not found in current path. - Run `import Pkg; Pkg.add("IJulia")` to install the IJulia package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 in expression starting at /home/user/anaconda3/envs/julialang/share/julia/packages/IJulia/AQu2H/src/kernel.jl:1 [I 22:40:31.874 NotebookApp] KernelRestarter: restarting kernel (2/5), new random ports ERROR: LoadError: ArgumentError: Package IJulia not found in current path. - Run `import Pkg; Pkg.add("IJulia")` to install the IJulia package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 in expression starting at /home/user/anaconda3/envs/julialang/share/julia/packages/IJulia/AQu2H/src/kernel.jl:1 [I 22:40:34.909 NotebookApp] KernelRestarter: restarting kernel (3/5), new random ports ERROR: LoadError: ArgumentError: Package IJulia not found in current path. - Run `import Pkg; Pkg.add("IJulia")` to install the IJulia package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 in expression starting at /home/user/anaconda3/envs/julialang/share/julia/packages/IJulia/AQu2H/src/kernel.jl:1 [I 22:40:37.945 NotebookApp] KernelRestarter: restarting kernel (4/5), new random ports ERROR: LoadError: ArgumentError: Package IJulia not found in current path. - Run `import Pkg; Pkg.add("IJulia")` to install the IJulia package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 in expression starting at /home/user/anaconda3/envs/julialang/share/julia/packages/IJulia/AQu2H/src/kernel.jl:1 [I 22:40:40.983 NotebookApp] KernelRestarter: restarting kernel (5/5), new random ports Websocket closed ERROR: LoadError: ArgumentError: Package IJulia not found in current path. - Run `import Pkg; Pkg.add("IJulia")` to install the IJulia package. Stacktrace: [1] macro expansion @ ./loading.jl:1163 [inlined] [2] macro expansion @ ./lock.jl:223 [inlined] [3] require(into::Module, mod::Symbol) @ Base ./loading.jl:1144 in expression starting at /home/user/anaconda3/envs/julialang/share/julia/packages/IJulia/AQu2H/src/kernel.jl:1 [W 22:40:44.021 NotebookApp] KernelRestarter: restart failed [W 22:40:44.022 NotebookApp] Kernel c0c716fc-b629-46d7-aa29-44e1cb91c0fc died, removing from map. [W 22:40:46.522 NotebookApp] Forbidden [W 22:40:46.522 NotebookApp] 403 GET /api/contents/Untitled3.ipynb?content=0&_=1666456825272 (127.0.0.1) 1.370000ms referer=http://localhost:8888/notebooks/Untitled3.ipynb?kernel_name=julia-1.8 [W 22:40:48.314 NotebookApp] Forbidden [W 22:40:48.314 NotebookApp] 403 GET /api/sessions?_=1666456701944 (127.0.0.1) 0.990000ms referer=http://localhost:8888/tree [W 22:40:48.316 NotebookApp] Forbidden [W 22:40:48.316 NotebookApp] 403 GET /api/terminals?_=1666456701945 (127.0.0.1) 1.200000ms referer=http://localhost:8888/tree [W 22:40:49.820 NotebookApp] 403 POST /api/shutdown (127.0.0.1) 11.230000ms referer=http://localhost:8888/tree ^C[I 22:41:09.376 NotebookApp] interrupted Serving notebooks from local directory: /home/user 0 active kernels Jupyter Notebook 6.4.12 is running at: http://localhost:8888/?token=e67639f228570093a6050632d9de6e98870f034e2923bfb5 or http://127.0.0.1:8888/?token=e67639f228570093a6050632d9de6e98870f034e2923bfb5 Shutdown this notebook server (y/[n])? ^C[C 22:41:09.614 NotebookApp] received signal 2, stopping [I 22:41:09.615 NotebookApp] Shutting down 0 kernels [I 22:41:09.616 NotebookApp] Shutting down 1 terminal [I 22:41:09.635 NotebookApp] EOF on FD 14; stopping reading [I 22:41:09.736 NotebookApp] Terminal 1 closed
Julia控制台输出
julia> versioninfo(); using Pkg; Pkg.status() Julia Version 1.8.2 Platform Info: OS: Linux (x86_64-conda-linux-gnu) CPU: 4 × Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz WORD_SIZE: 64 LIBM: libopenlibm LLVM: libLLVM-13.0.1 (ORCJIT, skylake) Threads: 1 on 4 virtual cores Environment: JULIA_CONDAPKG_BACKEND_BACKUP = JULIA_CONDAPKG_BACKEND = System JULIA_LOAD_PATH = @:@julia:@stdlib JULIA_LOAD_PATH_BACKUP = JULIA_DEPOT_PATH_BACKUP = JULIA_PROJECT_BACKUP = JULIA_CONDAPKG_EXE = /home/user/anaconda3/bin/conda JULIA_SSL_CA_ROOTS_PATH = /home/user/anaconda3/envs/julia/ssl/cacert.pem JULIA_DEPOT_PATH = /home/user/anaconda3/envs/julia/share/julia: JULIA_PROJECT = @julia JULIA_SSL_CA_ROOTS_PATH_BACKUP = JULIA_CONDAPKG_EXE_BACKUP = Status `~/anaconda3/envs/julia/share/julia/environments/julia/Project.toml` [7073ff75] IJulia v1.23.3
解决方案
- 激活Julia环境后启动Jupyter:直接从base环境启动Jupyter会导致无法找到Julia环境中的IJulia包,需先激活Anaconda的Julia环境:
conda activate julia jupyter notebook - 重新构建IJulia包:在激活的Julia环境中打开REPL,执行以下命令重新生成内核配置,确保路径正确:
using Pkg Pkg.build("IJulia") - 清理旧内核配置:如果存在残留的错误内核配置,先删除再重新生成:
之后回到Julia REPL执行rm -rf ~/.local/share/jupyter/kernels/julia-1.8Pkg.build("IJulia")重新注册内核。 - 验证环境变量一致性:激活Julia环境后,检查环境变量是否和Julia控制台一致:
需确保输出与Julia控制台中echo $JULIA_LOAD_PATHJULIA_LOAD_PATH = @:@julia:@stdlib一致。
内容的提问来源于stack exchange,提问作者Ayan Paul
相关产品推荐
相关产品推荐

