升级的Python; 我是否必须手动重新安装所有站点包?

VPf*_*PfB 7 python pip

我最近提升了我的Linux发行版.Python 3.5被Python 3.6取代.

我安装的所有站点包pip3仍然在/usr/lib/python3.5/site-packages目录中,Python现在没有找到它们,因为它看起来.../python3.6/site-packages很明显.

我看到目录内容,我可以再次手动安装它们,但这并不像我这样做的正确方法.我可以将内容移动到新目录,但同样,这在我看来也是错误的.

我该如何正确处理?

我应该pip3 freeze在升级之前准备一份清单吗?

我尝试搜索,但关键字可能过于笼统,并得到了许多无关的答案.

Vik*_*ngh 10

Python 3.5 被 Python 3.6 取代。但是你仍然有使用 python 3.5 的备份选项。

如果您想使用 python 3.6,则必须为 python 3.6 重新安装所有 pip 包。这是有道理的。

假设您要从 2.7 更改为 3.5。您可能希望分别保留这两个环境。因此 3.6 环境与 3.5 不同。

一种快速的方法是pip freeze为 3.5 安装这些依赖项,然后为 3.6 安装这些依赖项。

pip freeze > reqs.txt
Run Code Online (Sandbox Code Playgroud)

升级

pip install -r reqs.txt
Run Code Online (Sandbox Code Playgroud)

由于您不再有此选项,首先尝试列出您的python3.5中的所有包

为此,您可以按照@kabanus 的回答安装 pip3.5。

sudo apt-get install python3=3.5.1*
sudo python3.5 easy_install.py pip
Run Code Online (Sandbox Code Playgroud)

此外,建议每个项目使用虚拟环境,以便您可以为每个项目维护单独的环境。


Chr*_*nds 8

我刚刚从 Python 3.6 升级到 Python 3.7 时遇到了同样的问题,在升级到 Python 3.7pip freeze 之前我忘记了运行。有效的解决方案是将--path选项指定为 site-packages/目录(未删除):

pip3 freeze --path /usr/local/lib/python3.6/site-packages/ > python3.6_requirements.txt
pip3 install -r python3.6_requirements.txt
Run Code Online (Sandbox Code Playgroud)