Python 如何更新所有包?
2022/4/7 11:49:17
本文主要是介绍Python 如何更新所有包?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
总结自Stackoverflow:How to upgrade all Python packages with pip
@
目录- 方法一:pip命令
- 方法二:pip-review
- 方法三:pipupgrade
方法一:pip命令
温馨提示:此命令仅适于Linux用户
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
命令很长,我们来分析一下其中的各个参数
pip list --outdated
可以列出过时的python包
pip list --format
用来指定输出格式,其中freeze
格式,输出是类似这样的
attrs==21.2.0 Automat==20.2.0 blinker==1.4 certifi==2021.5.30 cffi==1.14.6 chardet==4.0.0 charset-normalizer==2.0.4 click==8.0.1 cloud-init==21.2 colorama==0.4.4 command-not-found==0.3
是不是有点像requirements.txt文件的内容?
后面就是Linux命令了,用grep
过滤掉-e开头的包,接着传给cut
命令,切掉每行==后面的所有内容,输出是类似这样的
attrs Automat blinker certifi cffi chardet charset-normalizer click cloud-init colorama command-not-found
最后的xargs
接收前面的输出,传给pip install -U
执行,通过指定-n1
参数,使得输出的每一行都作为参数执行一次pip install -U
方法二:pip-review
pip-review相当于一个简单包装过的pip。它可以像 pip list --outdated
一样列出可更新的包。还能像使用 pip install
命令一样自动或者交互式的安装可更新的包。
比如,如果只是想查看一下:
$ pip-review requests==0.13.4 is available (you have 0.13.2) redis==2.4.13 is available (you have 2.4.9) rq==0.3.2 is available (you have 0.3.0)
或者,更新所有包:
$ pip-review --auto ... <pip install output>
再者,交互式的运行,在每个包更新之前,询问一下:
$ pip-review --interactive requests==0.14.0 is available (you have 0.13.2) Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y ... redis==2.6.2 is available (you have 2.4.9) Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit n rq==0.3.2 is available (you have 0.3.0) Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y ...
运行 pip-review -h
可以查看完整的选项,或者去GitHUb:https://github.com/jgonggrijp/pip-review
注意:如果想固定特定的包以防止它们自动升级,可以搞一个约束文件(比如:requirements.txt
)
$ export PIP_CONSTRAINT="${HOME}/constraints.txt $ cat $PIP_CONSTRAINT pyarrow==0.14.1 pandas<0.24.0 $ pip-review --auto ...
方法三:pipupgrade
pipupgrade的功能和pip-review类似,不过它的命令行界面倒是挺炫酷的,比较符合我的审美哈。
查看所有可更新的包:
$ pipupgrade --check Checking... Source: Installed Distributions (/home/pineapple/.local/bin/pip) Name Current Version Latest Version Home Page --------------- --------------- -------------- ----------------------------------------- decorator 4.4.2 5.0.9 https://github.com/micheles/decorator humanize 0.5.1 3.11.0 https://github.com/jmoiron/humanize pid 2.2.3 3.0.4 https://github.com/trbs/pid/ pycairo 1.20.0 1.20.1 https://pycairo.readthedocs.io pyenchant 3.2.0 3.2.1 https://pyenchant.github.io/pyenchant/ pykickstart 3.32 3.34 http://fedoraproject.org/wiki/pykickstart python-augeas 0.5.0 1.1.0 http://augeas.net/ python-dateutil 2.8.1 2.8.2 https://github.com/dateutil/dateutil requests 2.25.1 2.26.0 https://requests.readthedocs.io setuptools 53.0.0 57.4.0 https://github.com/pypa/setuptools six 1.15.0 1.16.0 https://github.com/benjaminp/six slip 0.6.4 20191113 https://github.com/bicv/SLIP soupsieve 2.2 2.2.1 https://github.com/facelessuser/soupsieve Tempita 0.5.1 0.5.2 http://pythonpaste.org/tempita/ urllib3 1.25.10 1.26.6 https://urllib3.readthedocs.io/ ......
很炫酷啊!
更新所有的包:
$ pipupgrade
交互式的更新:
$ pipupgrade --interactive
更多pipupgrade 选项可以用 pipupgrade -h
查看,或者去GitHub:https://github.com/achillesrasquinha/pipupgrade
这篇关于Python 如何更新所有包?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门