使用pip list和pip show命令查看Python库版本

清欢
清欢
发布时间:2026-11-15 | 3人浏览过
原创

详细讲解如何使用pip list和pip show命令查看Python环境中已安装第三方库的版本、安装位置和依赖关系,对比两者的功能差异与实际排查场景。

在 Python 日常开发与环境维护中,确认当前环境中安装了哪些第三方库以及各库的具体版本号,是一项高频且基础的操作。Python 官方包管理工具 pip 提供了两个核心查询指令:pip list 和 pip show。前者用于批量输出当前环境下所有已安装库及其版本,提供全局概览;后者用于针对某个具体库检索详细元数据(如版本号、文件存储路径、依赖项以及反向依赖关系)。掌握这两个命令的用法与配合场景,能帮助开发者迅速排查版本冲突、依赖缺失和多环境串扰问题。

使用pip list和pip show命令查看Python库版本
图 1:pip list 与 pip show 的信息层级与核心应用场景对比

一、使用 pip list 查看已安装库全景

pip list 命令的主要功能是枚举当前 Python 环境(无论是系统全局环境还是激活的虚拟环境)下安装的所有包名称及其对应版本。执行该命令不需要传入额外参数,适合在刚接手项目或初始化环境时快速摸底。

1. 基础用法与输出示例

打开系统终端(Windows 的 PowerShell 或 CMD,macOS/Linux 的 Terminal),直接输入:

pip list

终端将以整齐的表格形式输出包名与对应版本。例如:

Package            Version
------------------ ---------
certifi            2023.7.22
charset-normalizer 3.2.0
idna               3.4
pip                23.2.1
requests           2.31.0
urllib3            2.0.4
wheel              0.41.2

从输出中可以直接查阅到每一个库当前被安装的确切版本号,包括 pip 和 wheel 等构建工具自身。

2. 常用参数与过滤技巧

除了无参数的简单列表,pip list 还提供了若干实用参数,用于辅助版本分析:

  • 检查过期库:pip list --outdated
    该命令会主动连接配置的 PyPI 镜像源,对比本地版本与远程仓库的最新可用版本,列出所有存在更新的库、当前安装版本、最新版本以及安装包类型(如 wheel)。
  • 结构化格式输出:pip list --format=json
    如果需要将库版本清单提供给自动化构建脚本或 CI/CD 流水线解析,可以指定 JSON 格式输出,获取标准的键值对数组。
  • 仅显示最新库:pip list --uptodate
    与 --outdated 相反,该参数筛选出所有已经是最新版本的包。
  • 结合终端工具快速搜索:
    在 Linux 或 macOS 下可使用 pip list | grep requests;在 Windows 下可使用 pip list | findstr requests,从而无需翻阅冗长列表即可定位特定库。
使用pip list和pip show命令查看Python库版本
图 2:pip list 的基础查询与进阶筛选执行流程

二、使用 pip show 查看单个库的详细信息

当开发者明确知道想要查询的库名称,或者需要进一步定位该库的安装路径、作者、许可协议以及依赖拓扑时,pip show 是更加精准高效的工具。

1. 基础用法与输出字段拆解

运行 pip show <库名>,例如查询 requests 库:

pip show requests

终端将返回关于该库的完整元数据卡片:

Name: requests
Version: 2.31.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: /home/user/myproject/venv/lib/python3.10/site-packages
Requires: certifi, charset-normalizer, idna, urllib3
Required-by: sphinx, responses

这些输出字段蕴含着重要的排查信息:

  • Name 与 Version:库的规范化名称及当前安装的版本号。
  • Location(核心诊断项):该库在磁盘上的绝对存放路径(通常位于对应解释器的 site-packages 目录)。如果本地运行代码出现 ImportError,核对该路径是否属于当前脚本所引用的 Python 解释器目录,能够迅速定位路径污染或虚拟环境未生效的问题。
  • Requires(依赖项):当前库正常工作所必须依赖的其他第三方库列表。安装该库时 pip 会自动解析并安装这些依赖。
  • Required-by(被依赖项):当前环境中哪些其他库依赖了该库。在准备卸载或升级某个共享基础库之前,必须先查看此字段,避免破坏其他包的运行环境。

2. 查看文件详细清单:-f / --files 参数

如果需要了解该库具体在环境里创建了哪些 .py 源码文件、可执行命令或数据资源,可以添加 -f(或 --files)参数:

pip show -f requests

在基础元数据下方,会追加列出该包相对于其 Location 的全部文件相对路径,方便深度排查库文件损坏或模块残损问题。

使用pip list和pip show命令查看Python库版本
图 3:pip show 命令输出项及其在工程诊断中的作用

三、两者的关键差异与典型排查场景

虽然 pip list 和 pip show 都能获取版本信息,但它们的设计侧重点有明显区别:

对比维度 pip list pip show <package>
查询范围 环境内所有已安装包(批量) 指定的一个或多个包(精准)
输出内容 仅包名与版本(可选带可更新版本) 版本、路径、主页、许可、依赖链路等完整元数据
网络请求 默认纯本地;加 --outdated 时联网 纯本地元数据读取,无需联网
未安装包表现 列表中不包含该包 返回空输出并提示未找到警告

实战排查场景 1:多 Python 解释器环境下的指向混乱

在开发机安装了多个 Python 版本(如系统自带 Python 3.8、conda 环境、项目虚拟环境 venv)时,经常遇到在终端执行 pip install xxx 成功,但运行代码依然报 ModuleNotFoundError 的情况。此时建议按以下方式排查:

  1. 使用 python -m pip show xxx 代替裸命令 pip show xxx。python -m pip 可以确保调用的是当前 python 可执行文件绑定的 pip。
  2. 查看输出中的 Location 路径,检查该路径是否确实落在当前项目正在使用的解释器目录下。

实战排查场景 2:安全升级与卸载前的依赖防断

当打算执行 pip uninstall 或使用 pip install --upgrade 升级某个底层库(例如 urllib3)时,可以先运行:

pip show urllib3

重点检查 Required-by 字段。如果输出包含 requests, botocore 等核心上层组件,说明该库被多个关键模块共享,盲目升级大版本可能导致上层库因接口不兼容而崩溃。

使用pip list和pip show命令查看Python库版本
图 4:查看 Python 库版本与排查环境问题的选择与决策流

四、操作注意事项与常见疑问

注意事项:
  • 大小写敏感性:在执行 pip show 时,包名称在 pip 内部不区分大小写(例如 pip show REQUESTS 与 pip show requests 效果相同),但必须拼写准确。如果拼写错误,命令将不输出任何信息。
  • 未激活虚拟环境:如果在没有激活虚拟环境的终端中运行上述命令,查看的将是操作系统的全局 Python 库,而无法反映当前项目的实际依赖状态。
  • pip 与 python 的绑定:多版本共存时,推荐统一使用 python -m pip list 与 python -m pip show <package>,这样能绝对保证查询的是当前选定 Python 解释器下的库信息。
相关专题:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表