如何使用 pip 升级所有 Python 包
是否可以一次升级所有 Python 包pip?
-
还没有内置标志,但您可以使用
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
注意:这有无限的潜在变化。我试图让这个答案简短而简单,但请在评论中提出变化!
在旧版本的 中
pip
,您可以改用它:pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
这
grep
是跳过可编辑(“-e”)包定义,正如@jawache 所建议的那样。(是的,您可以将grep
+cut
替换为sed
orawk
或perl
or …)。如果更新一个包失败,该
-n1
标志xargs
防止停止一切 -
您可以使用以下 Python 代码。与 不同
pip freeze
,这不会打印警告和 FIXME 错误。 对于点 < 10.0.1import pip from subprocess import call packages = [dist.project_name for dist in pip.get_installed_distributions()] call("pip install --upgrade " + ' '.join(packages), shell=True)
对于点 >= 10.0.1
import pkg_resources from subprocess import call packages = [dist.project_name for dist in pkg_resources.working_set] call("pip install --upgrade " + ' '.join(packages), shell=True)