升级python后升级pip软件包

7 浏览
0 Comments

升级python后升级pip软件包

在从Python 3.6升级到3.7(Windows)之后, 有什么正确的方法可以升级所有先前版本中使用Pip安装的已有包?但不使用虚拟环境或pipenv。

admin 更改状态以发布 2023年5月24日
0
0 Comments

你可以直接升级所有过时的软件包:

pip install -U $(pip list -o freeze | cut -f1 -d=)

长版本:

pip install --upgrade $(pip list --outdated --format freeze | cut --fields=1 --delimiter="=")

或者您可以创建并使用一个文件来列出所有过时的pip软件包名称:

list 所有过时的pip软件包并将输出格式化为“freeze”;

-d= 去掉“=”(分隔符)之后的所有内容;

> 将结果转储到一个文件中。

pip list -o freeze | cut -f1 -d= > pip_list_outdated.txt

长版本:

pip list --outdated --format freeze | cut --fields=1 --delimiter="="> pip_list_outdated.txt

输出结果将类似于:

gunicorn
PySimpleGUI
python-engineio
python-socketio
requests
setuptools
six

使用每行中的名称将过时的pip软件包升级到最新版本:

pip install -U $(

长版本:

pip install --upgrade $(


错误的方式:

如果您输入:

pip list -o freeze:

您将会得到类似于这样的结果:

autopep8==1.4.3
chardet==3.0.4
Django==2.1.4

如果您尝试使用这个结果进行升级:

pip install -U $(pip list -o freeze)

您将会得到以下信息:

Requirement already up-to-date: autopep8==1.4.3 in ...
Requirement already up-to-date: chardet==3.0.4 in ...
Requirement already up-to-date: Django==2.1.4 in ...

这是因为结果中列出的版本已经安装了。

要升级到最新版本,您需要使用没有版本号的软件包名称或带有您想要升级的版本号的名称。

0
0 Comments

你可以尝试使用以下脚本来升级所有已安装的软件包。

pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U

0