前两天同事换了台新 Windows 开发机,跑过来问我:Anaconda 装好了,Python 也装了,为什么 import torch 还是各种报错,YOLO 根本跑不起来?这种问题我一年至少要答十几次,每次听下来都是同一个套路——环境变量乱了、虚拟环境没建、CUDA 和 torch 版本对不上。今天干脆把我自己在 Windows 和 Linux 两头反复搭建 YOLO 运行环境的经验整理成一篇完整的实操记录,从 Anaconda 安装、镜像源配置、虚拟环境创建,到 YOLO 模型跑通、常见问题排查,全部串起来讲一遍。
这篇内容适合刚接触目标检测的开发者,也适合那些已经装了 Anaconda 但始终没法把 YOLO 跑顺的人。我不讲太多源码原理,重点放在“怎么一步步搭起来”“为什么这么搭”“搭的时候最容易在哪翻车”这三件事上。
1. 动手前的整体设计:为什么是 Anaconda 而不是别的方案
1.1 Anaconda 到底解决了什么问题
很多新手一开始会问:我直接用 pip 装依赖不行吗?为什么非要 Anaconda?这个问题其实问到点子上了。YOLO 这类深度学习项目,依赖的不是一两个包,而是一整条工具链:torch、opencv-python、numpy、pillow、matplotlib、ultralytics,以及底层涉及的一些二进制库。裸 Python 环境里直接 pip 安装,时间一长必然出现版本冲突——今天装 A 包要 numpy 1.x,明天装 B 包强制把 numpy 升到 2.x,然后你发现 YOLO 莫名其妙开始报错,整个环境直接没法用了。
Anaconda 的核心价值就两个字:隔离。它可以在同一台机器上创建完全独立的虚拟环境,每个环境拥有自己的 Python 解释器和一套依赖。YOLO 用 Python 3.10 + torch 2.1,其他项目用 Python 3.9 + torch 1.13,互不干扰。另外 conda 本身会处理很多非 Python 的底层依赖,比如某些图像处理库的 DLL/SO 文件,pip 在这块处理得并不好。
还有一个隐藏优势是 conda 对系统级依赖的收纳。比如说 Linux 下 OpenCV 依赖的 libGL.so.1,经常有人装完 opencv-python 后 import cv2 报错,就是因为系统缺这个库。用 conda 创建环境时,它会顺手把这类依赖放进环境目录里,很大程度上避开系统库缺失的问题。
1.2 动手前先定三件事:GPU、系统、YOLO 版本
我见过太多人拿到教程就照抄命令,结果卡在第一步:他不知道自己的机器是 N 卡还是 A 卡,也不知道自己的 Ubuntu 到底装没装驱动。所以在敲任何命令之前,先花五分钟把下面三件事定下来。
第一,你的机器有 NVIDIA 独立显卡吗?这直接决定了你要装 CPU 版还是 GPU 版的 PyTorch。如果只是跑 YOLO 推理、做小规模测试,CPU 版完全能跑,就是慢一点。如果要训练模型,尤其是训练自定义数据集,没有 GPU 基本等于坐牢。个人经验:用 YOLOv8n 在 CPU 上推理一张 640x640 的图片,大概需要 100~300ms,训练一个小数据集可能要几小时;而同样的任务放到 RTX 3060 上,推理只要 10~20ms,训练时间能缩短几十倍。
第二,你的系统是 Windows 还是 Linux?这两者的环境搭建思路相同,但细节差异不小。Windows 上相对无脑,显卡驱动装好后,PyTorch 通过 pip 装上就能用 CUDA;Linux 上你要检查驱动版本和 CUDA 版本是否匹配,还经常遇到权限问题。如果你的最终目标是部署到服务器,那建议从一开始就以 Linux 环境为主,Windows 只做开发调试。
第三,用哪个 YOLO 版本?目前社区主流是 Ultralytics 公司维护的 YOLOv5 和 YOLOv8 系列,这套实现最大的优点是用 pip install ultralytics 就能装好,不需要编译 C 代码,模型权重也是预训练好的,下载就能用。还有一类是老牌的 Darknet 框架,也就是 YOLOv4 那一系,需要自己编译源码,功能强大但折腾成本高。我的建议:除非你有特殊需求,否则直接用 Ultralytics 系,环境搭建的工作量能少掉一半以上。
1.3 环境版本参考表
下面这组版本组合是我在多个项目中验证过、相对稳妥的搭配,直接照着用不会踩太多坑:
| 项目 | Windows 推荐 | Linux 推荐 |
|---|---|---|
| 系统 | Windows 10/11 64位 | Ubuntu 20.04 / 22.04 |
| Anaconda | Anaconda 2024.x | Anaconda 2024.x |
| Python | 3.10 | 3.10 |
| PyTorch | torch 2.x + CUDA 12.x | torch 2.x + CUDA 12.x |
| Ultralytics | 8.x 最新版即可 | 8.x 最新版即可 |
这里要特别说明为什么 Python 选 3.10。Ultralytics 官方文档明确支持 Python 3.8~3.12,理论上 3.12 也行,但很多第三方依赖(尤其是老版本的 torch)对 Python 3.11/3.12 的预编译 wheel 支持并不同步。Python 3.10 是当前兼容面积最广的版本,torch、opencv、onnxruntime 这些核心库的预编译包都覆盖得很好。别一上来就装最新的 Python 3.12,省下的那点性能提升,抵不上你后面排查依赖兼容性消耗的时间。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Anaconda 安装与配置的核心细节
2.1 Windows 安装 Anaconda 的几个关键选项
Anaconda 在 Windows 上是图形化安装,界面很简单,但有几个选项值得注意。安装路径选择是第一个坑:默认路径是 `C:\Users\用户
