翼度科技»论坛 编程开发 python 查看内容

简洁好用的python-pip包更新工具

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
今天推荐一个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. 「」
复制代码
通过上面看出,它可以很方便的使用,帮助我们平常查看哪些包需要更新,以及更新你所需要更新的一些包。

来源:https://www.cnblogs.com/cpl9412290130/p/17670970.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具