【发布时间】:2020-11-21 23:10:32
【问题描述】:
我刚刚升级到 OSX 11.0.1。现在,当我尝试运行 jupyter notebook 时,我收到了这个错误:
% jupyter notebook
Traceback (most recent call last):
File "/usr/local/bin/jupyter-notebook", line 5, in <module>
from notebook.notebookapp import main
File "/usr/local/lib/python3.8/site-packages/notebook/notebookapp.py", line 83, in <module>
from .services.kernels.kernelmanager import MappingKernelManager, AsyncMappingKernelManager
File "/usr/local/lib/python3.8/site-packages/notebook/services/kernels/kernelmanager.py", line 18, in <module>
from jupyter_client.session import Session
File "/usr/local/lib/python3.8/site-packages/jupyter_client/session.py", line 41, in <module>
from jupyter_client.jsonutil import extract_dates, squash_dates, date_default
File "/usr/local/lib/python3.8/site-packages/jupyter_client/jsonutil.py", line 10, in <module>
from dateutil.parser import parse as _dateutil_parse
File "/usr/local/lib/python3.8/site-packages/dateutil/parser/__init__.py", line 2, in <module>
from ._parser import parse, parser, parserinfo, ParserError
File "/usr/local/lib/python3.8/site-packages/dateutil/parser/_parser.py", line 42, in <module>
import six
ModuleNotFoundError: No module named 'six'
如果我这样做 pip install six 我明白了:
Requirement already satisfied: six in
/usr/local/Cellar/protobuf/3.13.0_1/libexec/lib/python3.9/site-packages (1.15.0)
我对此感到很困惑,因为 (a) 我不知道这条路径是什么,并且 (b) 它似乎不在我的 PATH 或 PYTHONPATH 中,所以我不知道为什么 pip 在那里寻找它。
我该怎么办?
供参考:我想我最初是通过 pip 安装 jupyter 的我不知道我是如何安装 jupyter 的,而且我没有使用 anaconda(并且希望继续不这样做)。其他有用的信息:
% type jupyter
jupyter is /usr/local/bin/jupyter
% type python
python is an alias for /usr/local/bin/python3
% ls -al /usr/local/bin/python3
lrwxr-xr-x 1 me admin 40 12 Nov 23:12 /usr/local/bin/python3 -> ../Cellar/python@3.9/3.9.0_1/bin/python3
更新:如果我这样做pip list -v,那么我可以看到大多数包都在我期望的位置,除了 protobuf 和六个。我想知道为什么他们在不同的位置?
% pip list -v
Package Version Location Installer
----------------------- --------- ----------------------------------------------------------------------- ---------
appdirs 1.4.4 /usr/local/lib/python3.9/site-packages pip
asgiref 3.3.1 /usr/local/lib/python3.9/site-packages pip
...
protobuf 3.13.0 /usr/local/Cellar/protobuf/3.13.0_1/libexec/lib/python3.9/site-packages
...
six 1.15.0 /usr/local/Cellar/protobuf/3.13.0_1/libexec/lib/python3.9/site-packages
【问题讨论】:
-
也许,您使用的是 Homebrew (brew.sh),而您通过 brew 安装的其中一个应用程序有 protobuf 和六个作为依赖项。
-
谢谢。这绝对是一种可能。你觉得我应该怎么做?
-
我将从运行 brew cleanup 开始,希望这些包不再有用。如果它失败了,这里是解决方案 (stackoverflow.com/questions/61986682/…)。