问题描述
我使用brew upgrade python3
将python版本从3.7升级到3.8,但是在升级pipenv和jupyter命令后,它们停止工作了。这些是我到目前为止运行的命令,其他命令可能无法正常运行。
-bash: /usr/local/bin/pipenv: /usr/local/opt/python/bin/python3.7: bad interpreter: No such file or directory
这是我运行jupyter命令时的输出:
-bash: /usr/local/bin/jupyter: /usr/local/opt/python/bin/python3.7: bad interpreter: No such file or directory
所以我打开了文件/usr/local/bin/pipenv
,顶部声明的解释器是#!/usr/local/opt/python/bin/python3.7
所以我将其更改为#!/usr/local/opt/python/bin/python3.8
并运行pipenv命令,这是输出:
Traceback (most recent call last):
File "/usr/local/bin/pipenv",line 5,in <module>
from pipenv import cli
ModuleNotFoundError: No module named 'pipenv'
我运行了pip3 list
命令,这就是输出
Package Version
---------- -------
pip 20.1.1
setuptools 49.2.0
wheel 0.34.2
所以我进入/usr/local/lib
,有两个名为 python3.7 和 python3.8 的文件夹。 python3.7 中的 site-packages 文件夹具有我以前安装的所有模块,但 python3中的 site-packages 文件夹。 8 仅包含我使用pip3 list
获得的3个模块。
我还不完全了解这个问题,但我认为所有较旧的命令仍链接到不再存在的python3.7解释器,其次所有站点包都必须位于/usr/local/lib/python3.8
解决方法
是的,站点包是每个解释器版本的。 (此外,升级Python版本时,virtualenvs往往会中断。)
只需使用基于Python 3.8的新pip3
重新安装所需的软件包即可。