Conda 常用命令
本文档列出在日常使用 Conda(Anaconda /
Miniconda)时常见且实用的命令与示例,包含环境管理、包管理、导出/导入、配置与清理等常用操作。
环境管理(创建 / 激活 / 删除 /
列表)
1
| conda create -n myenv python=3.10
|
1
| conda create -n myenv python=3.10 numpy pandas
|
1 2 3
| conda env list
conda info --envs
|
1
| conda remove -n myenv --all
|
1
| conda create --name cloned_env --clone myenv
|
包管理(安装 / 升级 / 卸载 /
列表)
1
| conda install -n myenv scipy
|
- 从特定 channel 安装(如 conda-forge):
1
| conda install -c conda-forge opencv
|
- 使用 mamba(更快的替代品):先安装 mamba,然后用
mamba 替代 conda
1 2
| conda install -n base -c conda-forge mamba mamba install -n myenv -c conda-forge somepkg
|
1 2 3
| conda update numpy
conda update -n base -c defaults conda
|
1
| conda remove package_name
|
导出 / 导入 环境(共享、重现)
1
| conda env export > environment.yml
|
建议去掉 build 信息以提高可移植性:
1
| conda env export --no-builds > environment.yml
|
1
| conda env create -f environment.yml
|
- 使用 explicit 列表导出(精确包二进制 URL):
1 2
| conda list --explicit > spec-file.txt conda create --name myenv --file spec-file.txt
|
环境与包调试、信息查看
- 查看 conda 信息(配置、路径、active env):
1
| conda search numpy --info
|
配置与 channel 管理
1
| conda config --add channels conda-forge
|
- 设置 channel 优先级(strict / flexible):
1
| conda config --set channel_priority strict
|
1
| conda install -c conda-forge somepkg
|
清理与维护
常用选项: -p(清理包缓存),-t(清理
tarballs),-i(清理索引缓存),-a(全部)。
常见技巧与注意事项
1
| conda config --set auto_activate_base false
|
1
| conda run -n myenv python script.py
|
- 在项目中使用
environment.yml
保持可重复环境:将 environment.yml 加入仓库,使用
conda env create -f environment.yml 重建。
- pip 与 conda 混用注意:优先使用 conda
安装包(尤其是依赖 C 库的包),必要时在 conda 环境中使用
pip install,并在 environment.yml 中把 pip
依赖放在 - pip: 下列出。
示例 environment.yml(带 pip 依赖):
1 2 3 4 5 6 7 8 9
| name: myenv channels: - conda-forge dependencies: - python=3.10 - numpy - pip - pip: - some-pypi-package==1.2.3
|
conda install vs
pip install
| 对比项 |
conda install |
pip install |
| 包来源 |
默认从 Anaconda 官方仓库(defaults)或指定 channel(如
conda-forge)获取,经测试编译并打包包含二进制依赖 |
直接从 PyPI 下载源码或 Wheel(通常不含系统级依赖) |
| 依赖解析 |
Conda 使用 SAT
求解器全局解析所有依赖,尽量给出互相兼容的包版本;可能速度较慢 |
pip
采用递归解析,遇到冲突只发出警告,最终环境可能出现不兼容版本 |
| 非 Python 依赖 |
可以同时安装 C/C++ 库、MKL、CUDA
等系统依赖,因为包里已经包含编译好的二进制 |
只能处理 Python 包;若需要系统库需自行安装(或依赖 OS
包管理器) |
| 环境作用域 |
可以指定 -n env_name 操作任意 Conda
环境;也可全局管理环境(conda create/remove) |
仅对当前激活的 Python 环境生效(如 venv、virtualenv、conda
环境) |
| 构建方式 |
包在构建时统一使用 Conda build,保证 ABI
兼容;安装时通常无需编译 |
遇到只发布源码的包时会现场编译,需本地编译链(build tools) |
| 适合场景 |
数据科学、需要加速库或系统依赖的项目,或希望全部由一个工具管理环境与包 |
纯 Python Web/脚本项目,或需要最新的 PyPI 包(PyPI 更新通常快于
Conda) |
组合使用建议
- 先用
conda install 安装能在 channel
找到的包,确保二进制依赖完备。
- Channel 中没有的包再用
pip install,并在
environment.yml 的 - pip: 块记录版本。
- 同一环境内尽量避免频繁交替安装(尤其是多 channel +
pip),以减少依赖冲突。
使用anaconda管理员身份打开prompt,激活相应的虚拟环境后再pip,这样就只会安装到其相应的虚环境中了
常见问题快速解答
- conda 安装失败或依赖冲突:尝试使用
mamba,或创建新的干净环境并逐步安装;也可尝试指定 channel
或使用 --no-update-deps(谨慎)。
- 环境太多想批量删除:用
conda env list
找到名称,再用脚本循环删除。