《像素起源01》-深度学习第一步Miniconda安装与虚拟环境搭建
深度学习入门必懂:虚拟环境的作用与 Conda / pip / venv 的区别
引言
在学习深度学习的过程中,很多初学者都会遇到这样一个问题:
“我的代码在我电脑上能跑,但换一台电脑就报错。”
“我装了 PyTorch,但 import torch 时提示找不到模块。”
“为什么我明明安装了库,Jupyter 里却用不了?”
这些问题的根源,往往不是代码写错了,而是环境配置混乱。
本文将用清晰、简洁的方式,解释:
- 什么是虚拟环境?
- 为什么它对深度学习如此重要?
- Conda、pip、venv 三者到底有什么区别?
- 如何正确使用它们?
【话不多说先安装,无需提前装python,miniconda自带】
miniconda下载地址:https://docs.conda.io/en/latest/miniconda.html


conda create -n yolo python=3.10 -y #名字可以自己定义
conda activate yolo
python -m pip install --upgrade pip
pip install ultralytics #所有下载慢的包都可以加清华源↓
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple
一、什么是虚拟环境?为什么需要它?
虚拟环境(Virtual Environment)是一种隔离的 Python 运行环境。
你可以把它理解为:
在你的电脑里,为每个项目单独开辟一个“小房间”,每个房间有自己的 Python 解释器、安装的库和版本。
举个例子:
假设你有两个项目:
- 项目A:使用 PyTorch 1.12 和 Python 3.8
- 项目B:使用 PyTorch 2.3 和 Python 3.10
如果你直接在系统全局安装这些库,会发生:
- 安装 PyTorch 2.3 时,会覆盖掉 1.12
- 项目A 就无法运行了
- 如果你再装别的库,版本冲突会越来越多
这就是所谓的“依赖地狱”。
虚拟环境的作用,就是让每个项目拥有独立的“运行空间”,互不干扰。
二、三种常见的环境管理工具:venv、pip、Conda
| 工具 | 类型 | 能力范围 | 适用场景 |
|---|---|---|---|
venv |
Python 内置虚拟环境工具 | 只能管理 Python 包 | 纯 Python 项目(如脚本、爬虫) |
pip |
Python 包管理器 | 只能安装 Python 包(.whl / .tar.gz) | 安装单个库,如 pip install numpy |
Conda |
环境 + 包管理器 | 可管理 Python 包、C++ 库、CUDA、编译器等 | 深度学习、科学计算、多语言依赖项目 |
1. venv:轻量,但能力有限
venv 是 Python 3.3+ 自带的工具,使用简单:
python -m venv myenv # 创建环境
source myenv/bin/activate # Linux/macOS 激活
myenv\Scripts\activate # Windows 激活
pip install numpy # 安装包
deactivate # 退出
✅ 优点:无需额外安装,轻量、标准
❌ 缺点:只能管理 Python 包,不能安装 CUDA、cuDNN、GCC 等系统级依赖
👉 适合:写脚本、数据分析、不需要 GPU 的项目
2. pip:包安装工具,不是环境管理器
pip 是 Python 的包安装工具,常被误认为是“环境管理器”。
pip install torch torchvision torchaudio
它只负责下载并安装包,不关心版本兼容性,也不管理环境。
⚠️ 重要提醒:
pip不能创建环境 → 必须配合venv或condapip安装的包,可能与其他包版本冲突- 不要在全局环境中用 pip 安装大量包,否则极易污染系统
👉 适合:在已激活的虚拟环境中,补充安装 Python 包
3. Conda:深度学习的首选工具
Conda 是一个跨平台的环境与包管理器,最初为科学计算设计,现已成为 AI 开发的标准工具。
它不仅能管理 Python 包,还能:
💡 建议:
conda install -c conda-forge package_name通常能解决很多“找不到包”的问题,例如conda install -c conda-forge numpy。
- 安装 CUDA、cuDNN、OpenBLAS、GCC 等非 Python 依赖
- 自动解决版本冲突(如:PyTorch 2.3 + CUDA 12.1 + Python 3.10)
- 支持多个独立环境,互不干扰
- Conda 依赖 channels(如
defaults,conda-forge)。如果没配置好,默认通道可能没有你需要的包或版本。 - 新用户可能不知道要加
-c conda-forge,导致安装失败。
conda create --name dl-env python=3.10 # 创建环境
conda activate dl-env # 激活
conda install pytorch torchvision torchaudio cudatoolkit=12.1 -c pytorch # 一键安装带 CUDA 的 PyTorch
conda env export > environment.yml # 导出环境配置
✅ 优点:
- 管理“全栈依赖”(从驱动到代码)
- 版本兼容性由社区和官方保障
- 环境可导出、可复现,科研必备
❌ 缺点:
- 安装包较大(Miniconda 约 500MB)
- 初学者可能觉得“太重”
👉 强烈推荐:所有深度学习项目,使用 Conda + Miniconda,但是基础常用的例如yolo系列的推理等可以pip安装。
三、Conda vs venv + pip:实际对比
| 场景 | 使用 venv + pip | 使用 Conda |
|---|---|---|
| 创建环境 | python -m venv myenv |
conda create --name myenv python=3.10 |
| 安装 NumPy | pip install numpy |
conda install numpy |
| 安装 PyTorch + CUDA | pip install torch(可能失败) |
conda install pytorch cudatoolkit=12.1 -c pytorch(推荐) |
| 安装 OpenCV | pip install opencv-python |
conda install opencv |
| 导出环境 | pip freeze > requirements.txt |
conda env export > environment.yml |
| 复现环境 | pip install -r requirements.txt |
conda env create -f environment.yml |
| 是否支持 CUDA? | ❌ 不能自动安装 | ✅ 自动匹配版本 |
💡 关键结论:
pip 只能装“软件包”,Conda 能装“整个系统”。但是一般都是conda虚拟环境+pip混合conda,实际情况很灵动多变。
四、最佳实践建议
✅ 1. 使用 Miniconda,而非 Anaconda
- Miniconda 只包含 Conda + Python,体积小、干净
- Anaconda 预装几百个包,容易污染环境,不适合学习者(亲测没用)
下载地址:https://docs.conda.io/en/latest/miniconda.html
✅ 2. 每个项目一个环境
conda create --name project-a python=3.9
conda create --name project-b python=3.10
✅ 3. 激活环境后再安装包
conda activate project-a
conda install numpy jupyterlab
✅ 4. 注册 Jupyter 内核(解决“Jupyter 用不了当前环境”问题)
conda activate project-a
conda install ipykernel
python -m ipykernel install --user --name project-a --display-name "Python (project-a)"
重启 Jupyter 后,新建 Notebook 时即可选择该内核。
✅ 5. 导出并提交 environment.yml
conda activate project-a
conda env export > environment.yml #conda env create -f environment.yml安装所有包括虚拟环境名字
pip freeze > requirements.txt # pip install -r requirements.txt只安装里面的包
将 environment.yml 和代码一起提交到 Git,确保他人可复现你的环境。
✅ 这是科研和工程协作的基本素养,github项目常见pip install -r requirements.txt。
❌ 禁止行为
- 在全局环境中用 pip 安装大量包
- 在 Conda 环境中用 pip 升级 Conda 安装的包(如
pip install --upgrade torch) - 不使用环境,直接在系统 Python 上开发
五、总结:一句话记住核心
“一个项目,一个环境;一个环境,一个 yml 文件/txt文件。”
- 用 Conda 管理深度学习环境
- 用 conda create / activate / export 控制生命周期
- 用 ipykernel 让 Jupyter 认识你的环境
- 用 environment.yml 实现环境复现
从此,你不再说:“在我电脑上能跑。”
你会说:“我有 environment.yml,你运行 conda env create -f environment.yml 就能跑。”
推荐阅读
结语
环境配置不是“调参”或“写模型”那样的高阶技能,但它却是深度学习的第一道门槛。
很多人放弃,不是因为学不会算法,而是被环境问题劝退,诚然我第一次接触的时候就发现这玩意以后肯定会踩很多坑。果不其然即便工作了后也会发现一些环境配置的问题,包括后续还有更方便的Docker也会慢慢分享出来。
掌握虚拟环境,不是为了“显得专业”,而是为了让你的代码真正跑得起来、传得出去、复现得了。
从今天开始,为每一个项目创建独立环境。
你迈出的这一步,比你多写十行代码更有价值。
作者简介:Yuri,AI算法内容创作者,专注帮助初学者跨越深度学习的第一道技术门槛。
欢迎关注、点赞、收藏,下一期我们将使用这个环境,运行第一行真正的 AI 代码。
✅ 本文适合收藏、转发、作为学习笔记,也可直接用于课程参考资料。
如需 PPT 版本或 Markdown 源文件,可留言告知,我会提供下载链接。
更多推荐
所有评论(0)