Conda 完整操作手册
适用:Windows / Linux / macOS,包含虚拟环境、导出迁移避坑指南、缓存清理、conda‑pip 混用风险、常见报错排查。
一、基础信息命令(只读,无风险)
| 命令 | 作用 |
|---|---|
conda --version |
查看当前 conda 版本 |
conda -V |
查看 conda 版本(简写) |
conda --help |
查看 conda 全局帮助文档 |
conda info |
查看 conda 全部信息:环境路径、缓存目录、源、磁盘占用 |
conda info --envs |
列出所有已创建虚拟环境(和 conda env list 等价) |
更新 conda
二、虚拟环境管理(核心板块)
1. 创建环境
基础创建(指定 Python 版本,推荐写法)
-n全称--name,后面跟你的环境名称
从 yml 配置文件恢复/克隆环境(你最近实操过的重点)
⚠️ 非常重要规则: 新建出来的环境名字 优先读取 yml 文件第一行
name:字段,和yml文件名没有任何关系。 强制覆盖 yml 内的环境名:
2. 查看所有虚拟环境
3. 激活 / 进入环境
提示符最前面
(lidar_seg)代表你已经成功进入该环境。
4. 退出当前环境,回到 base
5. 删除虚拟环境(彻底移除)
两种等价写法,必须带上 --all,否则只会卸载包不会删除环境文件夹
删除前最好先退出环境,不要在环境内部删除自己。
三、环境导出与迁移(三大导出方案详解,重点避坑)
你踩过的坑:
conda env export导出会连带记录 pip 安装包,重建时自动执行 pip 安装。
三种导出方式对比表
| 导出方案 | 命令 | 优点 | 缺点 | 最佳适用场景 |
|---|---|---|---|---|
| 全量导出(完整克隆) | conda env export -n py312 > environment_full.yml |
100%复刻当前环境所有包(conda包+pip包),版本完全锁定 | 包含平台信息,Windows导出yml不能直接给Linux用 | 同一台电脑备份、同操作系统机器迁移 |
| 不带构建信息导出 | conda env export -n py312 --no-builds > environment_nobuilds.yml |
移除平台构建标识,同操作系统不同机器兼容性提升 | 依旧包含 pip 包列表,仍不可跨 Windows‑Linux | Windows→Windows,Linux→Linux 迁移 |
| 仅历史依赖导出(纯净项目文件) | conda env export -n py312 --from-history > environment_history.yml |
文件精简,跨平台兼容;只保留你手动conda install安装过的包,不包含隐式依赖、pip包 | 不会导出 pip 安装过的库,重建后pip包需要手动重装 | 项目仓库提交、多人协作、跨操作系统迁移 |
💡 实操建议:
- 本机备份环境 → 全量导出
environment_full.yml- 给项目仓库上传环境文件 →
--from-history纯净版
重建环境通用命令
四、包管理(conda 安装卸载更新)
注意:conda list 只会列出 conda + pip 全部已安装包(在激活环境后执行)
卸载环境里所有包≠删除环境,删除环境请回到上方「虚拟环境删除」命令
五、conda 缓存清理命令(释放C盘/磁盘空间)
清理缓存不会破坏你已经建好、正在使用的虚拟环境,只是清理下载过的安装包缓存。
| 命令 | 清理内容 | 风险等级 | 使用场景 |
|---|---|---|---|
conda clean -p |
删除没有任何环境引用的解压包 | ✅ 安全(首选) | 日常清理,优先推荐 |
conda clean -t |
删除缓存目录下 .tar.bz2 / .conda 原始压缩包 |
✅ 安全 | 释放大量磁盘空间 |
conda clean -i |
删除源索引缓存文件 | ✅ 安全 | 换源后,搜索包异常、索引报错 |
conda clean -pt |
清理无用解压包 + 压缩包 | ✅ 安全 | 常规综合清理 |
conda clean -pti |
三合一:-p -t -i | ✅ 安全 | 一键温和清理,定期维护 |
conda clean -a |
清空全部pkgs缓存目录 | ⚠️谨慎 | 磁盘空间严重不足;后续新建环境所有包必须重新下载 |
六、Python版本管理(环境内切换Python)
⚠️ 建议创建环境时就指定好 Python 版本,中途修改版本容易引发依赖混乱
七、conda 与 pip 的区别 & 混用风险(高频大坑)
核心区别
- conda:包管理器 + 环境管理器;可安装 Python / C/C++/CUDA 等非Python二进制依赖;自动解决全链路依赖。
- pip:仅 Python 包管理器;无法管理 CUDA、cudnn 等底层库,依赖冲突不会自动处理。
混用风险(重点!)
- 在同一个 conda 环境中先后使用 conda install、pip install 安装包,很容易破坏 conda 的依赖追踪,后续 conda 更新、卸载包时出现诡异报错。
推荐原则
- 优先使用
conda install安装包;conda源找不到时,再使用pip install。 - 一旦混用,导出 yml 文件时 pip 安装的包会被写入 yml 的
pip:节点;重建环境 conda 会自动调用 pip 重装,就像你上次重建py312环境日志里的流程。
八、配套开发常用附加命令(深度学习/你的点云项目)
GPU 状态监控(NVIDIA显卡)
Tensorboard 可视化
十、常见问题排查清单(结合你刚才yml重建案例)
- 重建yml环境,
conda activate xxx提示找不到环境 - 原因:yml文件内
name:字段名字≠你预想名字 - 排查方案:
conda env list查看真实环境名,或直接打开yml查看第一行name:的值 - 重建yml时出现
FutureWarning - 属于警告,不是报错,环境创建成功无需处理
- yml重建环境,pip依赖安装失败
- 检查网络;可修改yml中pip镜像源;或者删掉yml内
pip:节点手动pip安装 - 导出yml重建后包缺失
- 如果你用了
--from-history导出,pip安装过的包不会被导出,需要手动重装pip库