python之pip更新开源工具分享

news/2024/7/10 21:46:17 标签: python, pip, 开源

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

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

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

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

安装

pip install pkgu

使用

╰─± pkgu -h
usage: pkgu [-h] [-a] [-d CACHE_FOLDER] [-e EXPIRE_TIME] [--no-cache] [-v]

Upgrade python lib.

options:
  -h, --help            show this help message and exit
  -a, --async_upgrade   Update the library asynchronously. Default: False
  -d CACHE_FOLDER, --cache_folder CACHE_FOLDER
                        The cache.db file. Default: ~/.cache/cache.db
  -e EXPIRE_TIME, --expire_time EXPIRE_TIME
                        The expiration time. Default: 43200
  --no-cache            Whether to use db cache. Default: False
  -v, --version         Display pkgu version and information

主要参数说明:

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

检测更新

╰─± pkgu -a
() checking for updates...2023-08-30 22:21:39.869 | DEBUG    | pkgu:get_result_with_no_cache:622 - Origin result
+---------------+---------+----------------+-----------------+
|      Name     | Version | Latest Version | Latest FileType |
+---------------+---------+----------------+-----------------+
|      cfgv     |  3.3.1  |     3.4.0      |      wheel      |
|    distlib    |  0.3.6  |     0.3.7      |      wheel      |
|    filelock   |  3.9.0  |     3.12.3     |      wheel      |
|    identify   |  2.5.24 |     2.5.27     |      wheel      |
|      mock     |  4.0.3  |     5.1.0      |      wheel      |
|      pip      |  23.0.1 |     23.2.1     |      wheel      |
|  platformdirs |  3.0.0  |     3.10.0     |      wheel      |
|     pluggy    |  1.2.0  |     1.3.0      |      wheel      |
|    pydantic   |  2.2.1  |     2.3.0      |      wheel      |
| pydantic_core |  2.6.1  |     2.7.0      |      wheel      |
|    Pygments   |  2.15.1 |     2.16.1     |      wheel      |
|     pytest    |  6.2.5  |     7.4.0      |      wheel      |
|     PyYAML    |   6.0   |     6.0.1      |      wheel      |
|      ruff     | 0.0.277 |    0.0.286     |      wheel      |
|   setuptools  |  67.6.1 |     68.1.2     |      wheel      |
|   stevedore   |  5.0.0  |     5.1.0      |      wheel      |
|   virtualenv  | 20.20.0 |    20.24.3     |      wheel      |
|     wheel     |  0.40.0 |     0.41.2     |      wheel      |
+---------------+---------+----------------+-----------------+
continue with the package update?
> yes
  no
# 选择yes后
Update all packages listed above or portion of them?
  all
> portion

# 选择portion更新部分
Select one of these packages to update
  [ ] cfgv@3.3.1=>3.4.0
  [ ] distlib@0.3.6=>0.3.7
  [ ] filelock@3.9.0=>3.12.3
  [ ] identify@2.5.24=>2.5.27
  [*] mock@4.0.3=>5.1.0
  [ ] pip@23.0.1=>23.2.1
  [ ] platformdirs@3.0.0=>3.10.0
  [ ] pluggy@1.2.0=>1.3.0
  [ ] pydantic@2.2.1=>2.3.0
  [ ] pydantic_core@2.6.1=>2.7.0
  [ ] Pygments@2.15.1=>2.16.1
  [ ] pytest@6.2.5=>7.4.0
  [*] PyYAML@6.0=>6.0.1
> [*] ruff@0.0.277=>0.0.286
  [ ] setuptools@67.6.1=>68.1.2
  [ ] stevedore@5.0.0=>5.1.0
  [ ] virtualenv@20.20.0=>20.24.3
  [ ] wheel@0.40.0=>0.41.2
(Press "/" to search)
Press <space>, <tab> for multi-selection and <enter> to select and accept

可以支持多选更新。

⠹ installing ruff, version: from 0.0.277 to 0.0.286...✔ installed PyYAML, version: from 6.0 to 6.0.1...
✔ installed mock, version: from 4.0.3 to 5.1.0...
✔ installed ruff, version: from 0.0.277 to 0.0.286...
------------------------------------------------------------
✔ Successfully installed 3 packages. 「mock, PyYAML, ruff」
✖ Unsuccessfully installed 0 packages. 「」

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


http://www.niftyadmin.cn/n/4985388.html

相关文章

全国范围内-二手房小区数据-2023-8月更新

收录融合去重多个平台数据&#xff1a;80万&#xff0c;仅供数字参考 数据纬度字段名注释枚举值基础信息id主键id&#xff1a;名称城市来源生成 md5值00001073838501125ec4473463ead9ccname名称瑞祥安文创园address地址(朝阳)双桥路东柳村口南口lng经度116.581903lat纬度39.89…

elasticsearch8.9.1集群搭建

目录 1.官网文档 2.安装步骤 2.1 环境准备 2.2 添加用户 2.3 修改文件profile文件 2.4 修改elasticsearch.yml 2.5 修改 sysctl.conf 3.启动 3.1 切换到kibana 3.2 启动elasticsearch 3.3 启动kibana 3.4 验证节点情况 1.官网文档 elasticsearch文档&#xff1a;ht…

TongWeb安装以及集成

TongWeb 安装步骤 静默安装 获取linux可执行安装包 如: Install_TWx.x.x.x_Enterprise_Linux.bin 创建安装所需配置文件 install.properties 内容如下 [root@node5 tongweb]# cat install.properties INSTALL_UI=silent USER_INSTALL_DIR=/home/tongweb SILENT_JDK_HOME=/jd…

SSD的基础知识介绍

固态硬盘&#xff0c;英文名Solid State Disk或Solid State Drive&#xff0c;是一种以存储器作为永久性存储器的电脑存储设备。虽然SSD已不是使用“碟盘”来记存数据&#xff0c;也没有用于“驱动”的马达&#xff0c;但是人们依照命名习惯&#xff0c;仍然称为固态硬盘或固态…

Swift使用PythonKit调用Python

打开Xcode项目。然后选择“File→Add Packages”&#xff0c;然后输入软件包依赖链接&#xff1a; ​https://github.com/pvieito/PythonKit.git https://github.com/kewlbear/Python-iOS.git Python-iOS包允许在iOS应用程序中使用python模块。 用法&#xff1a; import Pyth…

【LeetCode题目详解】第八章 贪心算法 part06 738.单调递增的数字 968.监控二叉树 (day37补)

本文章代码以c为例&#xff01; 一、力扣第738题&#xff1a;单调递增的数字 题目&#xff1a; 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数…

数据结构与算法基础-学习-30-插入排序之直接插入排序、二分插入排序、希尔排序

一、排序概念 将一组杂乱无章的数据按一定规律顺次排列起来。 将无序序列排成一个有序序列&#xff08;由小到大或由大到小&#xff09;的运算。 二、排序方法分类 1、按数据存储介质 名称描述内部排序数据量不大、数据在内存&#xff0c;无需内外交换存交换存储。外部排序…

成都优优聚:美团代运营趋势在哪儿?

美团代运营作为一种经营模式&#xff0c;在当今日益竞争激烈的市场中扮演着重要的角色。它为商家提供了全方位的服务&#xff0c;从市场推广到订单管理&#xff0c;从团购券的制作到售后服务&#xff0c;帮助商家解决了运营中的各种难题。 首先&#xff0c;美团代运营的核心优势…