You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行获取pip中显式安装的软件包列表?

获取显式安装软件包的pip freeze格式列表

可靠解决方案:pip inspect + 过滤工具组合

利用pip inspect返回的JSON数据中标记显式安装的requested字段,结合工具过滤并格式化输出,完全匹配PEP 376定义的“显式请求安装”包标准。

方法1:使用jq工具(推荐)

执行以下命令直接生成pip freeze格式的结果:

pip inspect | jq -r '.installed[] | select(.requested == true) | "\(.metadata.name)==\(.metadata.version)"'
命令拆解
  • pip inspect:输出包含所有已安装包元数据的JSON,其中requested: true对应显式安装的包
  • jq -r:以原始字符串格式输出结果,避免多余引号
  • .installed[]:遍历所有已安装包的条目
  • select(.requested == true):筛选出标记为显式安装的包
  • "\(.metadata.name)==\(.metadata.version)":将包名与版本拼接为pip freeze的标准格式

方法2:无jq时用Python处理

如果系统未安装jq,可通过Python内置JSON模块实现:

pip inspect | python3 -c "
import json
import sys
data = json.load(sys.stdin)
for pkg in data['installed']:
    if pkg.get('requested'):
        print(f\"{pkg['metadata']['name']}=={pkg['metadata']['version']}\")
"

为什么不选pip list --not-required

正如你验证的结果,该命令会排除所有被其他包依赖的包——哪怕这些包最初是你显式安装的,无法精准匹配“显式请求安装”的定义,因此不适合你的需求。

内容的提问来源于stack exchange,提问作者Ash Skabo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 14:38:14