在将python3.7升级到python3.8

问题描述

我使用brew upgrade python3将python版本从3.7升级到3.8,但是在升级pipenv和jupyter命令后,它们停止工作了。这些是我到目前为止运行的命令,其他命令可能无法正常运行。

这是我运行pipenv时的输出

-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重新安装所需的软件包即可。