Jupyter 扩展安装失败:错误提示 'terminado' 未找到,但我应该已经拥有它
Jupyter Extension Installation Failed: Error says 'terminado' wasn't found, but I should already have it
我尝试按照说明安装 jupyter 扩展 here。
指令中名为 'Install the python package' 的第一步已成功。
但是第二个名为 'Install javascript and css files' 的失败了。
我按照提示执行了jupyter contrib nbextension install --user
,但是出现了错误
错误显示:pkg_resources.DistributionNotFound: The 'terminado>=0.8.1' distribution was not found and is required by notebook
。 (显示的所有回溯如下。)
但是我确认我已经安装了 'terminado' v0.8.2 包,它是通过 pip 安装的。
我该如何处理这个问题?问题仅仅是 jupyter 命令不知道 'terminado' 的安装位置吗?还是问题更严重?
所有报错信息如下:
Traceback (most recent call last):
File "/usr/local/bin/jupyter-contrib", line 5, in <module>
from pkg_resources import load_entry_point
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 3241, in <module>
@_call_aside
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 3225, in _call_aside
f(*args, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 3254, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 583, in _build_master
ws.require(__requires__)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 900, in require
needed = self.resolve(parse_requirements(requirements))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 786, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'terminado>=0.8.1' distribution was not found and is required by notebook
我正在使用 macOS Catalina(但同样的问题出现在 Mojave 上。
总结
问题是,看到错误消息可能会发现,jupyter contrib
命令使用 python2,而不是我偏好的 python3。
问题
命令使用python2是由于/usr/local/bin/jupyter-contrib
文件的shebang引起的。
shebang 是 #!/usr/bin/python
,这意味着它指定 jupyter-contrib
使用 python 解释器,它位于 /usr/bin/python
上,在我的机器上是 python2(以及许多其他 Mac 机器,也许)。
因此,您应该使用 shebang 指定 python3 而不是 python2.
解决方案
首先,获取您的 python3 安装路径,如下所示:
$ which python3
复制返回的路径。
打开 /usr/local/bin/jupyter-contrib
文件。注意这个文件是只读的但是你必须重写它,所以你应该用 sudo
:
打开它
$ sudo vim /usr/local/bin/jupyter-contrib
重写第 1 行的 shebang。 Shebang现在可能是这样的:
#!/usr/bin/python
其中它指定 python2 作为它的解释器。您应该将路径重写为您在步骤 1 中复制的 python3 的路径:
#!{{Paste your python3's path}}
保存文件。
就是这样。
现在 jupyter-contrib
使用 python3。
所以 jupyter contrib nbextension install --user
命令应该成功。
我尝试按照说明安装 jupyter 扩展 here。
指令中名为 'Install the python package' 的第一步已成功。
但是第二个名为 'Install javascript and css files' 的失败了。
我按照提示执行了jupyter contrib nbextension install --user
,但是出现了错误
错误显示:pkg_resources.DistributionNotFound: The 'terminado>=0.8.1' distribution was not found and is required by notebook
。 (显示的所有回溯如下。)
但是我确认我已经安装了 'terminado' v0.8.2 包,它是通过 pip 安装的。
我该如何处理这个问题?问题仅仅是 jupyter 命令不知道 'terminado' 的安装位置吗?还是问题更严重?
所有报错信息如下:
Traceback (most recent call last):
File "/usr/local/bin/jupyter-contrib", line 5, in <module>
from pkg_resources import load_entry_point
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 3241, in <module>
@_call_aside
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 3225, in _call_aside
f(*args, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 3254, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 583, in _build_master
ws.require(__requires__)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 900, in require
needed = self.resolve(parse_requirements(requirements))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 786, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'terminado>=0.8.1' distribution was not found and is required by notebook
我正在使用 macOS Catalina(但同样的问题出现在 Mojave 上。
总结
问题是,看到错误消息可能会发现,jupyter contrib
命令使用 python2,而不是我偏好的 python3。
问题
命令使用python2是由于/usr/local/bin/jupyter-contrib
文件的shebang引起的。
shebang 是 #!/usr/bin/python
,这意味着它指定 jupyter-contrib
使用 python 解释器,它位于 /usr/bin/python
上,在我的机器上是 python2(以及许多其他 Mac 机器,也许)。
因此,您应该使用 shebang 指定 python3 而不是 python2.
解决方案
首先,获取您的 python3 安装路径,如下所示:
$ which python3
复制返回的路径。
打开
打开它/usr/local/bin/jupyter-contrib
文件。注意这个文件是只读的但是你必须重写它,所以你应该用sudo
:$ sudo vim /usr/local/bin/jupyter-contrib
重写第 1 行的 shebang。 Shebang现在可能是这样的:
#!/usr/bin/python
其中它指定 python2 作为它的解释器。您应该将路径重写为您在步骤 1 中复制的 python3 的路径:
#!{{Paste your python3's path}}
保存文件。
就是这样。
现在 jupyter-contrib
使用 python3。
所以 jupyter contrib nbextension install --user
命令应该成功。