今天推荐一个github的开源工具 pkgu,支持以表格形式展示当前python环境下的有新版本的package的版本信息,并支持全部或部分更新这些已经过期或者有新版的库。

该工具目前还提供了 cache 功能,会将当前python环境下的过期包信息保存在数据库内,数据库采用了python的 sqlite3 内置数据库,数据库文件保存在 ~/.cache/cache.db 下,并支持过期后重新执行脚本获取过期库的数据,然后覆盖更新,默认过期时间是 43200秒

支持windows、linux和macos,但是python版本要在python3.10(包括)及以上。

并且你可以在你的主python环境安装它,它会被安装在主python环境下的 bin 目录内。这样,即使你在其他虚拟python环境下,也可以主动发现当前环境下的python路径,并通过python -m pip 去发现当前虚拟python环境下的安装包信息。

安装

  1. pip install pkgu

使用

  1. ╰─± pkgu -h
  2. usage: pkgu [-h] [-a] [-d CACHE_FOLDER] [-e EXPIRE_TIME] [--no-cache] [-v]
  3. Upgrade python lib.
  4. options:
  5. -h, --help show this help message and exit
  6. -a, --async_upgrade Update the library asynchronously. Default: False
  7. -d CACHE_FOLDER, --cache_folder CACHE_FOLDER
  8. The cache.db file. Default: ~/.cache/cache.db
  9. -e EXPIRE_TIME, --expire_time EXPIRE_TIME
  10. The expiration time. Default: 43200
  11. --no-cache Whether to use db cache. Default: False
  12. -v, --version Display pkgu version and information

主要参数说明:

  • -a : 开启异步更新, 默认不开启
  • -d: 设置 cache.db 所在的位置, 默认 ~/.cache/cache.db
  • -e: 设置数据库的过期时间, 默认 43200 秒(12小时)
  • --no-cache: 是否开启缓存,如果不开启,每次都需要重新执行去获取过期库的包。默认不开启

检查更新

  1. ╰─± pkgu -a
  2. ( ) checking for updates...2023-08-30 22:21:39.869 | DEBUG | pkgu:get_result_with_no_cache:622 - Origin result
  3. +---------------+---------+----------------+-----------------+
  4. | Name | Version | Latest Version | Latest FileType |
  5. +---------------+---------+----------------+-----------------+
  6. | cfgv | 3.3.1 | 3.4.0 | wheel |
  7. | distlib | 0.3.6 | 0.3.7 | wheel |
  8. | filelock | 3.9.0 | 3.12.3 | wheel |
  9. | identify | 2.5.24 | 2.5.27 | wheel |
  10. | mock | 4.0.3 | 5.1.0 | wheel |
  11. | pip | 23.0.1 | 23.2.1 | wheel |
  12. | platformdirs | 3.0.0 | 3.10.0 | wheel |
  13. | pluggy | 1.2.0 | 1.3.0 | wheel |
  14. | pydantic | 2.2.1 | 2.3.0 | wheel |
  15. | pydantic_core | 2.6.1 | 2.7.0 | wheel |
  16. | Pygments | 2.15.1 | 2.16.1 | wheel |
  17. | pytest | 6.2.5 | 7.4.0 | wheel |
  18. | PyYAML | 6.0 | 6.0.1 | wheel |
  19. | ruff | 0.0.277 | 0.0.286 | wheel |
  20. | setuptools | 67.6.1 | 68.1.2 | wheel |
  21. | stevedore | 5.0.0 | 5.1.0 | wheel |
  22. | virtualenv | 20.20.0 | 20.24.3 | wheel |
  23. | wheel | 0.40.0 | 0.41.2 | wheel |
  24. +---------------+---------+----------------+-----------------+
  25. continue with the package update?
  26. > yes
  27. no
  28. # 选择yes后
  29. Update all packages listed above or portion of them?
  30. all
  31. > portion
  32. # 选择portion部分更新
  33. Select one of these packages to update
  34. [ ] cfgv@3.3.1=>3.4.0
  35. [ ] distlib@0.3.6=>0.3.7
  36. [ ] filelock@3.9.0=>3.12.3
  37. [ ] identify@2.5.24=>2.5.27
  38. [*] mock@4.0.3=>5.1.0
  39. [ ] pip@23.0.1=>23.2.1
  40. [ ] platformdirs@3.0.0=>3.10.0
  41. [ ] pluggy@1.2.0=>1.3.0
  42. [ ] pydantic@2.2.1=>2.3.0
  43. [ ] pydantic_core@2.6.1=>2.7.0
  44. [ ] Pygments@2.15.1=>2.16.1
  45. [ ] pytest@6.2.5=>7.4.0
  46. [*] PyYAML@6.0=>6.0.1
  47. > [*] ruff@0.0.277=>0.0.286
  48. [ ] setuptools@67.6.1=>68.1.2
  49. [ ] stevedore@5.0.0=>5.1.0
  50. [ ] virtualenv@20.20.0=>20.24.3
  51. [ ] wheel@0.40.0=>0.41.2
  52. (Press "/" to search)
  53. Press <space>, <tab> for multi-selection and <enter> to select and accept

可以支持多选更新。

  1. installing ruff, version: from 0.0.277 to 0.0.286... installed PyYAML, version: from 6.0 to 6.0.1...
  2. installed mock, version: from 4.0.3 to 5.1.0...
  3. installed ruff, version: from 0.0.277 to 0.0.286...
  4. ------------------------------------------------------------
  5. Successfully installed 3 packages. mock, PyYAML, ruff
  6. Unsuccessfully installed 0 packages. 「」

通过上面看出,它可以很方便的使用,帮助我们平常查看哪些包需要更新,以及更新你所需要更新的一些包。

简洁好用的python-pip包更新工具的更多相关文章

  1. Python的包管理工具Pip (zz )

    Python的包管理工具Pip 接触了Ruby,发现它有个包管理工具RubyGem很好用,并且有很完备的文档系统http://rdoc.info 发现Python下也有同样的工具,包括easy_ins ...

  2. Python PIP包管理器

    版权所有,未经许可,禁止转载 章节 Python 介绍 Python 开发环境搭建 Python 语法 Python 变量 Python 数值类型 Python 类型转换 Python 字符串(Str ...

  3. Python的包管理工具

    Python的包管理工具 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么使用包管理 Python的模块或者源文件直接可以复制到目标项目目录中,就可以导入使用了. 但是为了 ...

  4. python pip包管理

    pip 是一个安装和管理 Python 包的工具 , 是 easy_install 的一个替换品.本文将详细说明 安装 pip 的方法和 使用 pip 的一些基本操作如安装.更新和卸载 python ...

  5. Python学习笔记(十二)—Python3中pip包管理工具的安装【转】

    本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

  6. 5、Python之包管理工具pip

    pip提供我们各色各样的软件(第三方库),而这些第三方库又可以给我们实现各种各样不同的功能,科学计算.画图.操作文件.聊天-- 我们可以通过Cmd终端.Pycharm.Jupyter三种平台使用pip ...

  7. 【转载】Python的包管理工具Pip

    接触了Ruby,发现它有个包管理工具RubyGem很好用,并且有很完备的文档系统http://rdoc.info 发现Python下也有同样的工具,包括easy_install和Pip.不过,我没有细 ...

  8. Python的包管理工具--PIP安装使用

    最新安装方式 # wget https://bootstrap.pypa.io/get-pip.py # python get-pip.py  // 使用该方式安装已经不再要求提前安装setuptoo ...

  9. Python的包管理工具Pip

    接触了Ruby,发现它有个包管理工具RubyGem非常好用,而且有非常完备的文档系统http://rdoc.info 发现Python下也有相同的工具,包含easy_install和Pip.只是,我没 ...

  10. Python之包管理工具:distutils、setuptools、distribute、setup.py、easy_install、easy_install、pip

    在安装Python包的过程中,经常涉及到distutils.setuptools.distribute.setup.py.easy_install.easy_install和pip等等. 介绍:htt ...

随机推荐

  1. Linux中修改文件权限方法

    在此记录一下,看到的一篇写的比较好的帮我解决问题的文章 这里也补充一下,如果要修改当前目录下的所有文件时,文件名用 * 代替,如:chmod 755 *(即可修改当前文件下所有文件的权限为:-rwxr ...

  2. OpenGL 投光物详解

    1. 投光物 继续上一节的流程,到目前为止,我们介绍的都是点光源.但是现实世界中,光源的类型却要相对复杂一些.大概会有这么几种形式:定向光.点光源.聚光等等.  2. 定向光 当一个光源处于很远的地方 ...

  3. 容器中sh脚本明明存在,为何会报"no such file or directory"的错误?

    小伙伴碰到一起奇怪的事故,从gitlab上拉取的docker镜像项目,在本地开发机上进行docker build后,启动容器会报错如下: exec /app/run.sh : no such file ...

  4. 关联规则挖掘:Apriori算法的深度探讨

    在本文中,我们深入探讨了Apriori算法的理论基础.核心概念及其在实际问题中的应用.文章不仅全面解析了算法的工作机制,还通过Python代码段展示了具体的实战应用.此外,我们还针对算法在大数据环境下 ...

  5. ES到底是个什么东西

    概念:全文检索服务器(是基于Lucene开发的全文检索服务器),它可以近乎实时存储.检索数据,底层仍然是Lucene来实现的所以索引和搜索功能,他的目的是通过的简单的RESTFul API 来隐藏Lu ...

  6. 自研、好用的ORM 读写分离功能使用

    Fast Framework 作者 Mr-zhong 代码改变世界.... 一.前言 Fast Framework 基于NET6.0 封装的轻量级 ORM 框架 支持多种数据库 SqlServer O ...

  7. GHOST 系统安装教程 轻松一键,系统恢复到最佳状态

    硬盘安装系统 安装前准备 1.保证能够正常进入系统: 2.下载Ghost系统镜像文件: 3.下载镜像安装器: 安装步骤 1.下载Ghost系统镜像"Win7_x64_Pure_5.07.GH ...

  8. .NET Conf China 2023 活动纪实 抢先看

    ​ 今天2023年12月16日.NET Conf China 2023举办的日子,北京昨天上午还在飘起雪花,到今天早上的天气就有了极大的改观,大清早就能看到外面徐徐升起的朝阳,这也预示着今天将是一个大 ...

  9. pytorch学习笔记——加载checkpoint时,程序报错,存在GPU和CPU不同步的情况

    当我们需要加载之前训练的checkpoint的时候,有时候会发现之前能训练的代码无法继续训练. 这时候很有可能加载优化器的步骤在加载模型前面,这样可能会导致优化器的参数仍然在CPU上,因此代码需要由原 ...

  10. 使用Py2neo更新Neo4j中节点的属性值的正确姿势

    1 def findNode(name, graph): 2 matcher = NodeMatcher(graph) 3 m = matcher.match(name = name).first() ...