查看 Python 已安装的模块有多种方法,适用于不同的场景和需求,下面我将为你详细介绍几种最常用和最有效的方法。

使用 pip list (最常用)
这是最直接、最常用的方法,它会列出通过 pip (Python 的包安装器) 安装的所有包。
基本用法
在终端或命令提示符中输入以下命令:
pip list
你会看到一个已安装包的列表,包括包名和版本号。
更详细的列表
如果你想查看更多信息,比如包的位置,可以使用 --format=freeze 或 --verbose。--format=freeze 的输出格式非常适合用于创建 requirements.txt 文件。

pip list --format=freeze
输出示例:
Pillow==9.5.0
requests==2.28.1
numpy==1.23.5
搜索特定模块
当列表很长时,你可以使用管道符 和 grep (在 Linux/macOS 上) 或 findstr (在 Windows 上) 来快速搜索。
在 Linux/macOS 上:
pip list | grep pandas
在 Windows 上:
pip list | findstr pandas
使用 pip show (查看特定模块详情)
如果你只想了解某一个特定模块的详细信息,比如它的版本、位置、依赖关系等,这个方法非常方便。

pip show <模块名>
查看 requests 模块的信息:
pip show requests
输出示例:
Name: requests
Version: 2.28.1
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: /usr/local/lib/python3.9/site-packages # 模块安装路径
Requires: certifi, charset-normalizer, idna, urllib3
Required-by:
如果模块没有安装,你会看到错误提示:ERROR: Package(s) not found: <模块名>
使用 Python 内置模块 pkgutil 和 pkg_resources
如果你想在 Python 代码中检查已安装的模块,而不是在命令行中,可以使用这些内置模块。
使用 pkgutil
pkgutil 可以简单地列出所有 Python 已知的模块(包括内置的和已安装的)。
import pkgutil
# 遍历所有模块
for importer, modname, ispkg in pkgutil.iter_modules():
print(f"模块名: {modname}, 是否是包: {ispkg}")
这个方法会列出非常多模块,包括标准库和第三方库。
使用 pkg_resources (更推荐)
pkg_resources 是 setuptools 的一部分,功能更强大,可以获取已安装包的详细信息,比如版本。
import pkg_resources
# 列出所有已安装的包及其版本
distributions = pkg_resources.working_set
for dist in distributions:
print(f"{dist.project_name}=={dist.version}")
# 检查某个特定包是否已安装
try:
dist = pkg_resources.get_distribution('requests')
print(f"已安装: {dist.project_name} 版本 {dist.version}")
except pkg_resources.DistributionNotFound:
print("未安装 'requests' 模块")
检查 site-packages 目录 (底层方法)
pip 安装的第三方包通常位于 Python 环境的 site-packages 目录下,你可以直接查看这个目录。
-
找到你的 Python 解释器路径: 在终端运行:
python -c "import sys; print(sys.executable)"
这会输出你的 Python 解释器的完整路径,
/usr/bin/python3或C:\Users\YourUser\AppData\Local\Programs\Python\Python39\python.exe。 -
进入
site-packages目录:- Linux/macOS:
site-packages通常在/usr/local/lib/python3.x/site-packages/或~/.local/lib/python3.x/site-packages/(x 是你的 Python 版本号)。 - Windows: 它通常在
Python安装目录\Lib\site-packages\。
- Linux/macOS:
-
列出目录内容: 进入该目录后,使用
ls(Linux/macOS) 或dir(Windows) 命令查看里面的文件和文件夹,这些基本上就是所有通过pip安装的包。
使用 conda list (如果你使用 Conda)
如果你是通过 Anaconda 或 Miniconda 管理环境的,那么应该使用 conda 命令。
conda list
这个命令会列出当前 Conda 环境中所有安装的包(包括 Python 自带的和通过 conda 或 pip 安装的),你也可以加上包名来查看特定信息:
conda list numpy
总结与对比
| 方法 | 命令 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|---|
pip list |
pip list |
快速查看所有已安装包 | 简单、快速、信息直观 | 列表可能很长,不易查找 |
pip show |
pip show <模块名> |
查看单个模块的详细信息 | 信息全面(路径、依赖等) | 需要知道模块名 |
pkg_resources |
Python 代码中 | 在脚本中动态检查模块 | 功能强大,可编程控制 | 需要写代码 |
site-packages |
ls /path/to/site-packages |
底层查看,理解安装机制 | 最直接,能看到所有文件 | 路径因环境而异,较麻烦 |
conda list |
conda list |
使用 Conda 环境时 | 管理环境,查看依赖 | 仅适用于 Conda 环境 |
对于绝大多数用户来说,pip list 和 pip show 是最常用、最方便的组合。 你先用 pip list 浏览,然后用 pip show <模块名> 深入了解你关心的模块。
