Conda环境怎么查看已安装的Python包

Owen
Owen
发布时间:2026-11-11| 6人浏览过
原创

本文详细介绍在Conda虚拟环境中查看已安装Python包的常用命令、输出格式解读、跨环境查询方法、模糊过滤技巧以及包导出备份方式。

查看 Conda 环境中已安装的 Python 包,最直接的基础命令是 conda list。在已激活的环境中运行该命令,终端将完整输出当前环境下所有软件包的名称、版本号、构建编号及安装渠道。若不想切换当前终端会话,还可以附加 -n <环境名> 或 -p <环境路径> 参数,直接查询目标环境的安装详情。
Conda环境怎么查看已安装的Python包
图 0:Conda 查询已安装包的核心流程与输出维度缩略概览

一、在当前激活环境中执行基础查询

日常开发中,绝大多数查看包的操作都在当前工作环境中进行。在终端执行包查询前,通常需要先确认当前处于哪个 Conda 环境中。

终端提示符最前端的括号通常会显示当前活跃环境的名称(例如 (base) 或 (my_project))。如果提示符没有显示,或者需要查看机器上存在的所有环境清单,可以在终端执行以下环境检查命令:

conda info --envs
# 或者使用简写别名
conda env list

在输出列表中,带星号 * 的那一项即代表当前终端会话所在的环境。如果尚未激活目标环境,使用 conda activate 切换:

conda activate py310_env

激活成功后,直接运行核心命令即可输出该环境中安装的所有包:

conda list
终端输出示例(示例内容)
# packages in environment at /Users/username/miniconda3/envs/py310_env: # # Name Version Build Channel bzip2 1.0.8 h93a5062_5 conda-forge ca-certificates 2024.2.2 hf0a4a13_0 conda-forge numpy 1.26.4 py310h2422055_0 conda-forge openssl 3.2.1 h0d3ecfb_1 conda-forge pip 24.0 pyhd8ed1ab_0 conda-forge python 3.10.13 h2469fbe_1_cpython conda-forge requests 2.31.0 pypi_0 <pip> setuptools 69.2.0 pyhd8ed1ab_0 conda-forge
Conda环境怎么查看已安装的Python包
图 1:Conda 包查询操作流程与多场景查询决策流

二、免切换环境直接查看指定环境中的包

在管理多个 Python 项目时,本地通常会创建诸如 py39_test、pytorch_env 等不同的独立虚拟环境。若每次核对依赖都需要先执行 conda activate,排查完成后再切换回来,操作成本较高。

Conda 提供了通过参数直接读取目标环境包元数据的能力,主要有以下两种形式:

1. 按环境名称查询:-n 参数

如果目标环境存放在 Conda 的默认环境目录中(即通过 conda create -n env_name 创建),可以直接通过 -n(或 --name)指定环境名:

conda list -n py39_test

执行后,Conda 会直接读取该环境目录下的元数据,并输出完整的包列表,而当前终端所处的主环境完全保持不变。

2. 按完整路径查询:-p 参数

如果环境是创建在特定工程目录下(例如通过 conda create --prefix ./venv 创建的 Prefix 环境),并没有注册在全局环境名称表中,此时可以通过 -p(或 --prefix)传入绝对路径或相对路径:

conda list -p /data/projects/nlp_service/env

三、输出字段深度解读:版本、构建号与渠道

运行 conda list 时,终端以表格形式展示四列核心信息。理解每一列的具体含义,是排查版本冲突和依赖来源的关键。

Conda环境怎么查看已安装的Python包
图 2:conda list 终端输出四维结构与字段含义深度解析

四、过滤与精确查找指定 Python 包

一个完整的科学计算或深度学习环境常常包含上百个底层依赖库。直接运行 conda list 会产生很长的滚动屏幕,肉眼翻找既费时又容易遗漏。此时可以使用以下两种过滤方式:

1. 使用 Conda 内置参数过滤

conda list 命令本身支持在末尾添加参数进行模式匹配。参数支持正则表达式:

# 查找名称中包含 numpy 的包
conda list numpy

# 匹配所有以 torch 开头的包
conda list "^torch"

# 精确匹配某一个特定包名
conda list "^pandas$"
终端过滤输出示例(示例内容)
# packages in environment at /Users/username/miniconda3/envs/py310_env: # # Name Version Build Channel numpy 1.26.4 py310h2422055_0 conda-forge numpy-base 1.26.4 py310h9f7b24a_0 conda-forge

2. 配合系统管道命令过滤

除了使用内置过滤,还可以将查询结果通过管道符交给系统的文本搜索工具:

  • macOS / Linux 终端:使用 grep 过滤,例如 conda list | grep -i scipy(-i 表示忽略大小写)。
  • Windows PowerShell:使用 Select-String,例如 conda list | Select-String "torch"。
  • Windows CMD:使用 findstr,例如 conda list | findstr /I "torch"。

五、原理浅析:Conda 是如何统计已安装包的?

为什么通过 pip install 安装的包也会出现在 conda list 的列表中?为什么有时会出现包已安装但 conda list 却看不到的情况?了解其底层工作机制有助于快速定位问题。

每个 Conda 环境本质上是文件系统上的一个独立文件夹(例如 ~/miniconda3/envs/my_env/)。当执行 conda list 时,Conda 内部执行了两个步骤的扫描与合并:

  1. 读取 conda-meta 目录:环境根目录下的 conda-meta/ 文件夹保存了所有通过 conda install 安装的包的 JSON 元数据(记录了精确的版本号、依赖关系、哈希校验及 Channel 来源)。
  2. 扫描 Python 的 site-packages 目录:Conda 还会定位当前环境的 lib/pythonX.X/site-packages/,扫描其中由 pip 留下的 .dist-info 或 .egg-info 文件夹。凡是在第一步的 conda-meta 中没有记录但在 site-packages 中被发现的库,都会被标记为 <pip> 来源。
Conda环境怎么查看已安装的Python包
图 3:Conda 环境底层包存储与元数据解析机制原理图

六、导出已查看的包列表:环境备份与环境迁移

查看包的常见后续需求是将当前环境的所有依赖清单导出,以便在团队成员之间共享,或在新的服务器上快速重建相同环境。Conda 提供了两种不同颗粒度的导出方式:

1. 导出轻量级环境描述文件(YAML)

使用 conda env export 可以将当前环境的所有包名和渠道信息输出为 YAML 格式。适合跨平台迁移环境:

# 导出当前环境完整依赖到 environment.yml
conda env export > environment.yml

# 如果希望生成的配置跨平台更通用(剔除操作系统特异的 Build 编号)
conda env export --no-builds > environment.yml

2. 导出精确的 Spec 规范文件(txt)

如果需要在同一种操作系统架构的机器之间进行完全精确的逐字节重现,可以使用 conda list --export:

# 导出标准 spec 清单
conda list --export > spec-file.txt

生成的文件中每一行都固定为 package=version=build 格式。后续在相同平台的设备上只需执行 conda create --name new_env --file spec-file.txt 即可瞬间恢复完全一致的运行环境。

Conda环境怎么查看已安装的Python包
图 4:Conda 包查询与导出操作全景速查矩阵

七、常见疑问与排查步骤

1. 为什么刚才用 pip install 安装的包在 conda list 中找不到?

这种情况通常由 Python 解释器或 pip 的实际路径未指向当前 Conda 环境引起:

  • 排查原因:如果在未激活环境时或者在激活了环境但系统的 pip 路径仍指向全局 Python(例如系统自带的 Python 或全局 Homebrew Python),那么 pip 会将包安装到全局目录,当前 Conda 环境的 site-packages 自然不会有此包。
  • 确认方法:在终端运行 which pip(Linux/macOS)或 where pip(Windows),检查输出路径是否在当前 Conda 环境路径(如 ~/miniconda3/envs/my_env/bin/pip)下。如果不是,建议在当前环境运行 conda install pip 确保环境内自带独立的 pip 工具。

2. 提示 "EnvironmentLocationNotFound" 错误?

使用 conda list -n <env_name> 时如果出现该错误,说明 Conda 没有在注册路径下找到该名称对应的文件夹。

  • 通过 conda env list 检查环境名称的真实拼写是否一致。
  • 如果该环境不是在默认的 envs 目录下创建的,改用 -p 参数并传入该环境文件夹的绝对路径即可。

3. conda list 和 pip list 有何区别?

对比维度 conda list pip list
管理范围 包含 Python 库、C/C++ 动态链接库、CUDA 工具包、Python 解释器本身及 pip 安装的库 仅包含当前 Python 解释器下的 Python 模块包
来源标注 提供详细的 Channel 来源(如 defaults、conda-forge、<pip>) 仅展示包名与版本号,不区分来源仓库
跨环境查询 支持通过 -n 或 -p 直接跨环境免激活查询 必须先激活对应环境或显式调用该环境的 pip 二进制文件
相关专题:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。