OSX 中的 jupyter 内核:没有名为 IPython 的模块
jupyter kernels in OSX: No module named IPython
快速旁注:
此问题基于 ipython
的错误跟踪器中的问题 #7947。这个问题似乎与 OSX
或我的 mac 上的一些奇怪设置有关(也许两者都有)。我无法在新的 Ubuntu 盒子上复制它。
我知道潜在的问题可能很复杂。知道它是否可以在 OSX
上重现,或者如果它只是我已经是一个很大的帮助。
我正在尝试为我的 python 版本设置多个 jupyter
内核。具体来说,我有两个 conda
环境 sci27
和 sci34
,因为名称已经表明前者运行 python2.7
解释器,后者运行 python3.4
解释器。
所以我现在要做的是:
source activate sci27
conda install ipython-notebook
ipython kernelspec install-self
现在我在 /usr/local/share/jupyter/kernels/python2/
中有了我的内核定义
{
"display_name": "Python 2",
"language": "python",
"argv": [
"/Users/ch/miniconda/envs/sci27/bin/python",
"-m",
"IPython.kernel",
"-f",
"{connection_file}"
]
}
我在 sci34
环境中启动 ipython
:
source activate sci34
conda install ipython-notebook
ipython notebook --debug
现在事情变得很奇怪:如果我 select 新安装的内核 Python 2
,内核崩溃并输出以下内容:
[D 12:47:53.029 NotebookApp] Opening websocket /api/kernels/4ae0a266-9396-44f7-a529-912056dc6eed/channels
[D 12:47:53.029 NotebookApp] Connecting to: tcp://127.0.0.1:52954
[D 12:47:53.030 NotebookApp] Connecting to: tcp://127.0.0.1:52955
[D 12:47:53.031 NotebookApp] Connecting to: tcp://127.0.0.1:52956
[I 12:47:54.949 NotebookApp] KernelRestarter: restarting kernel (4/5)
WARNING:root:kernel 4ae0a266-9396-44f7-a529-912056dc6eed restarted
[D 12:47:54.954 NotebookApp] Connecting to: tcp://127.0.0.1:52957
/Users/ch/miniconda/envs/sci34/bin/python: No module named IPython
[W 12:47:57.957 NotebookApp] KernelRestarter: restart failed
[W 12:47:57.957 NotebookApp] Kernel 4ae0a266-9396-44f7-a529-912056dc6eed died, removing from map.
ERROR:root:kernel 4ae0a266-9396-44f7-a529-912056dc6eed restarted failed!
[W 12:47:57.975 NotebookApp] Kernel deleted before session
[W 12:47:57.975 NotebookApp] 410 DELETE /api/sessions/70f4d715-807c-4bbc-8a0a-b503aa966606 (::1) 1.40ms referer=http://localhost:8888/notebooks/Untitled2.ipynb?kernel_name=python2
消息/Users/ch/miniconda/envs/sci34/bin/python: No module named IPython
让我很惊讶。为什么 jupyter
会尝试调用 sci34
的解释器而不是 sci27
的解释器?
此外,为什么 module not found
消息?显然 /Users/ch/miniconda/envs/sci34/bin/python -m IPython
工作得很好,因为笔记本服务器在 sci34
环境中运行。
更新到 IPython 3.2.0
将解决此问题。有关详细信息,请参阅拉取请求 PR-8527。
快速旁注:
此问题基于 ipython
的错误跟踪器中的问题 #7947。这个问题似乎与 OSX
或我的 mac 上的一些奇怪设置有关(也许两者都有)。我无法在新的 Ubuntu 盒子上复制它。
我知道潜在的问题可能很复杂。知道它是否可以在 OSX
上重现,或者如果它只是我已经是一个很大的帮助。
我正在尝试为我的 python 版本设置多个 jupyter
内核。具体来说,我有两个 conda
环境 sci27
和 sci34
,因为名称已经表明前者运行 python2.7
解释器,后者运行 python3.4
解释器。
所以我现在要做的是:
source activate sci27
conda install ipython-notebook
ipython kernelspec install-self
现在我在 /usr/local/share/jupyter/kernels/python2/
{
"display_name": "Python 2",
"language": "python",
"argv": [
"/Users/ch/miniconda/envs/sci27/bin/python",
"-m",
"IPython.kernel",
"-f",
"{connection_file}"
]
}
我在 sci34
环境中启动 ipython
:
source activate sci34
conda install ipython-notebook
ipython notebook --debug
现在事情变得很奇怪:如果我 select 新安装的内核 Python 2
,内核崩溃并输出以下内容:
[D 12:47:53.029 NotebookApp] Opening websocket /api/kernels/4ae0a266-9396-44f7-a529-912056dc6eed/channels
[D 12:47:53.029 NotebookApp] Connecting to: tcp://127.0.0.1:52954
[D 12:47:53.030 NotebookApp] Connecting to: tcp://127.0.0.1:52955
[D 12:47:53.031 NotebookApp] Connecting to: tcp://127.0.0.1:52956
[I 12:47:54.949 NotebookApp] KernelRestarter: restarting kernel (4/5)
WARNING:root:kernel 4ae0a266-9396-44f7-a529-912056dc6eed restarted
[D 12:47:54.954 NotebookApp] Connecting to: tcp://127.0.0.1:52957
/Users/ch/miniconda/envs/sci34/bin/python: No module named IPython
[W 12:47:57.957 NotebookApp] KernelRestarter: restart failed
[W 12:47:57.957 NotebookApp] Kernel 4ae0a266-9396-44f7-a529-912056dc6eed died, removing from map.
ERROR:root:kernel 4ae0a266-9396-44f7-a529-912056dc6eed restarted failed!
[W 12:47:57.975 NotebookApp] Kernel deleted before session
[W 12:47:57.975 NotebookApp] 410 DELETE /api/sessions/70f4d715-807c-4bbc-8a0a-b503aa966606 (::1) 1.40ms referer=http://localhost:8888/notebooks/Untitled2.ipynb?kernel_name=python2
消息/Users/ch/miniconda/envs/sci34/bin/python: No module named IPython
让我很惊讶。为什么 jupyter
会尝试调用 sci34
的解释器而不是 sci27
的解释器?
此外,为什么 module not found
消息?显然 /Users/ch/miniconda/envs/sci34/bin/python -m IPython
工作得很好,因为笔记本服务器在 sci34
环境中运行。
更新到 IPython 3.2.0
将解决此问题。有关详细信息,请参阅拉取请求 PR-8527。