是否可以使用 pip
一次升级所有 Python 包?
注意:官方问题跟踪器上有 一个功能请求。
原文由 thedjpetersen 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否可以使用 pip
一次升级所有 Python 包?
注意:官方问题跟踪器上有 一个功能请求。
原文由 thedjpetersen 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用以下 Python 代码。与 pip freeze
不同,这不会打印警告和 FIXME 错误。 对于 pip < 10.0.1
import pip
from subprocess import call
packages = [dist.project_name for dist in pip.get_installed_distributions()]
call("pip install --upgrade " + ' '.join(packages), shell=True)
对于 pip >= 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)
原文由 user515656 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答4.3k 阅读✓ 已解决
2 回答861 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答856 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
4 回答2.5k 阅读
3 回答903 阅读✓ 已解决
还没有内置标志,但您可以使用:
对于旧版本的
pip
:正如@jawache 所建议的,
grep
是跳过可编辑(“-e”)包定义。 (Yes, you could replacegrep
+cut
withsed
orawk
orperl
or…) .-n1
标志xargs
防止在更新一个包失败时停止一切(感谢 @andsens )。注意: 这有无限的潜在变化。我试图让这个答案简短而简单,但请在评论中提出变化!