无法在Jupyter Notebook上启动内核

16

我安装了通过Homebrew安装的Python版本3.6.5_13.7.0
jupyter需要Python3.6才能启动,如果我切换到Python3.7,它就无法启动。

启动后,它无法启动内核,并显示以下错误:

Traceback (most recent call last):
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/web.py", line 1543, in _execute
result = yield result
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
value = future.result()
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1107, in run
yielded = self.gen.throw(*exc_info)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/notebook/services/sessions/handlers.py", line 73, in post
type=mtype))
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
value = future.result()
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1107, in run
yielded = self.gen.throw(*exc_info)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/notebook/services/sessions/sessionmanager.py", line 79, in create_session
kernel_id = yield self.start_kernel_for_session(session_id, path, name, type, kernel_name)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
value = future.result()
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1107, in run
yielded = self.gen.throw(*exc_info)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/notebook/services/sessions/sessionmanager.py", line 92, in start_kernel_for_session
self.kernel_manager.start_kernel(path=kernel_path, kernel_name=kernel_name)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
value = future.result()
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/vendor/lib/python3.6/site-packages/tornado/gen.py", line 315, in wrapper
yielded = next(result)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/notebook/services/kernels/kernelmanager.py", line 148, in start_kernel
super(MappingKernelManager, self).start_kernel(**kwargs)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/jupyter_client/multikernelmanager.py", line 110, in start_kernel
km.start_kernel(**kwargs)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/jupyter_client/manager.py", line 259, in start_kernel
**kw)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/jupyter_client/manager.py", line 204, in _launch_kernel
return launch_kernel(kernel_cmd, **kw)
File "/usr/local/Cellar/jupyter/1.0.0_4/libexec/lib/python3.6/site-packages/jupyter_client/launcher.py", line 128, in launch_kernel
proc = Popen(cmd, **kwargs)
File "/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 709, in __init__
restore_signals, start_new_session)
File "/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1344, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/opt/python/bin/python3.7': '/usr/local/opt/python/bin/python3.7'

据我所知,内核正在寻找Python3.7。 我的内核列表中只有Python3。

Translated:

据我所知,内核正在寻找Python3.7。 我的内核列表中只有Python3。

$jupyter kernelspec list  
Available kernels:  
python3    /usr/local/etc/jupyter/kernels/python3  

我看了一下这个github链接,但是并没有帮助到我。我该如何让jupyter和内核运行在同一个Python版本上?


安装Jupyter内核的命令是 python3.7 -m ipykernel install。您确定所有的Python3都是通过Homebrew安装的吗? - Erwan
@Erwan,是的,我所有的Python3都是通过Homebrew安装的。 - nac001
1
在 Python 3.7 控制台中通过 help("modules") 命令检查 Jupyter 是否已安装。 - Alex
@Alex,我在模块列表中找不到jupyter。 - nac001
1
请使用 pip3 install jupyter 命令进行安装。(需要使用 Python 3.7 的 pip 工具) - Alex
请不要将解决方案公告编辑到问题中。如果已经有答案,请接受其中一个(即单击其旁边的“勾”)。如果没有现成的答案,您也可以创建自己的答案,并接受它。 - Yunnosch
5个回答

26

检查内核规格:

$jupyter kernelspec list

这将向您展示可用的内核。在这种情况下:

python3    /usr/local/etc/jupyter/kernels/python3  

在此目录中打开kernel.json文件,并在argv键中指定您想要内核使用的Python路径。


3
我遇到了相同的错误,我运行了你在问题中提到的以下命令,返回结果为 python3 C:\Users\AHMED\anaconda3\envs\iris_1\share\jupyter\kernels\python3。现在我不知道如何指定Python的路径。 - Ahmed Yasin
@AhmedYasin,你提到的路径中有一个 kernel.json 文件。你需要在那里更改内核路径。 - nac001
2
谢谢。我的 kernel.json 文件中的 Python 可执行文件路径是在环境变量中而不是系统范围内的,这个解决了问题。 - Colin
我运行了 "which python3" 命令,并使用相同的路径更新了 argv,这解决了我的问题。谢谢! - yogidilip

10

更新jupyter笔记本已解决我的问题。 但请记住,使用命令行更新它。不要使用Anaconda Navigator。

pip install -U jupyter

2

如果有任何人阅读此文并在Anaconda内运行Jupyter Notebook时遇到相同的错误:

我发现一个解决方法是在命令提示符中使用pip安装Jupyter(而不是Anaconda提示符):

$pip install jupyter

然后使用已知的方式启动Jupyter

$cd 'DirectoryofyourNotebook'
$jupyter notebook

1
步骤2命令:
conda activate <location of your env folder>

步骤3命令:

python -m ipykernel install --user

工作正常!


2
请提供完整的流程,因为它不包括步骤1。解释这个过程的工作原理将进一步帮助作者。 - David Lee

0

我也遇到了同样的问题 - 尝试了上述所有方法都没有成功。

背景:在那台机器上使用Windows已经有几年了。我将这台机器用作“需要时随时编码”的笔记本电脑,并且在安装/升级Python版本或库或环境时并不非常小心或一致。

对我来说解决方法是某个包含f2py.exe(Numpy - Pandas构建在其之上)的文件夹不在路径中,而且在以"\Scripts"结尾的隐藏文件夹中。 Python本身在环境变量中是正常的。它们位于非常不同的文件夹中 - 而通常它们应该在文件树的相邻分支中。将以"\Scripts"结尾的文件夹的完整路径添加到环境变量中可以解决我的内核问题。


我假设读者对路径和环境变量很熟悉。如果不是,请查看官方文档或此链接 https://dev59.com/qHA65IYBdhLWcg3wqQY8 - Alexandre Jean

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接