conda info --envs 是最可靠的方式,可列出 conda 所有已注册环境的绝对路径,含星号者为当前激活环境;未显示的环境可能未被注册或 envs_dirs 配置不正确。

conda info --envs 显示所有已知环境路径
直接运行 conda info --envs 是最可靠的方式,它会列出 conda 当前识别的所有环境(包括 base 和自定义环境),每行末尾就是对应环境的绝对路径。注意:这个命令不依赖当前是否激活某个环境,也不要求你在某个特定目录下执行。
常见错误现象是只看到 base 一行,其他环境没列出来——这通常说明那些环境没被 conda “注册”,比如手动复制粘贴了 env 文件夹但没用 conda env create 或 conda create 创建;或者 envs_dirs 配置被改过但没生效。
-
conda info --envs输出中的路径必须真实存在且包含python.exe(Windows)或bin/python(Linux/macOS) - 如果某环境路径显示为
C:\Users\name\anaconda3\envs\myenv,但该文件夹下没有python.exe,说明环境损坏或未完成初始化 - 输出里带星号(*)的那一行,表示当前激活的环境
conda env list 和 conda info -e 是同一命令的别名
conda env list 和 conda info -e 实际上都调用同一个逻辑,输出格式和内容完全一致。不必记哪个更“标准”,选顺手的就行。但要注意:它们不会列出当前工作目录下的子文件夹,哪怕那个文件夹里有 environment.yml 或 pyvenv.cfg —— conda 不扫描当前路径,只查配置好的 envs_dirs。
如果你在项目根目录下执行这些命令,却希望看到“本项目对应的环境”,那大概率要先确认这个环境是否已被 conda 管理。否则它只是个普通文件夹,conda 压根不知道它的存在。
- 检查是否被管理:进到疑似环境目录,看有没有
conda-meta\history文件,有则大概率是 conda 创建的 - 临时使用某个环境:可以用
conda activate /path/to/env(支持绝对路径),即使它没出现在conda info --envs列表里(只要结构完整)
查看 conda 默认查找环境的目录:conda config --show envs_dirs
conda 不是漫无目的地找环境,它只在 envs_dirs 配置指定的路径下搜索。运行 conda config --show envs_dirs 就能看见它实际检查哪些位置。默认通常是:C:\Users\<user>\Anaconda3\envs</user>(Windows 用户目录)或 C:\ProgramData\Anaconda3\envs(系统级安装)。
容易踩的坑是:你把环境建在 D:\myproject\env,但 envs_dirs 里没加这一项,结果 conda info --envs 死活不显示它。这时候要么把环境移到默认目录,要么运行:conda config --add envs_dirs "D:\myproject"(注意加的是父目录,不是环境本身路径)。
- 修改后需新开终端才生效,旧终端里的
conda info --envs仍看不到新增路径下的环境 -
envs_dirs支持多个路径,顺序靠前的优先级更高;重复添加会导致列表里出现冗余项 - 如果输出为空或报错,说明配置被意外清空,可重置:
conda config --remove-key envs_dirs再重新添加
当前工作目录 ≠ 当前 conda 环境所在目录
很多人误以为“在哪个文件夹下打开终端,就自动用了那个文件夹里的环境”。其实完全无关。conda 的环境绑定靠的是激活状态(conda activate xxx),而不是当前路径。你可以在 C:\ 下激活 D:\envs\py39,也可以在 D:\project 下激活 base。
真正需要关注当前路径的场景,其实是用 conda env create -f environment.yml 创建环境时——这时 conda 会把新环境建在 envs_dirs 第一个路径下,但 environment.yml 文件可以放在任意位置。所以“当前路径”只影响 yml 文件的读取位置,不影响环境落地位置。
- 想让新环境建在当前目录?不行。conda 强制走
envs_dirs,不支持--prefix .\myenv这种本地路径(除非显式用conda create --prefix ./myenv) -
./myenv这种写法创建的环境不会被conda info --envs自动发现,必须用绝对路径激活,且后续更新、删除都得手动处理
最常被忽略的一点:conda 的“环境路径”是环境本身的安装位置,不是你存放代码的位置。两者可以分离,也应当分离——代码放项目目录,环境放统一管理目录,这样换电脑或重装系统时,只需导出 yml 重建环境,不用搬整个文件夹。











