尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

计算机视觉环境搭建:Anaconda+PyCharm+OpenCV+PyTorch安装YOLOv5

计算机视觉环境搭建:Anaconda+PyCharm+OpenCV+PyTorch安装YOLOv5 写这篇博客的起因很简单自己刚接触计算机视觉时为了把 PyCharm、OpenCV、Anaconda、PyTorch、YOLOv5 这一整套环境折腾明白前前后后重装了不知道多少次系统踩坑踩到怀疑人生。现在回头看其实这套环境配置的脉络非常清晰只要理解了每个工具的角色定位和它们之间的协作关系完全可以在一个小时内从零搭好并且在同一个环境里跑通 YOLOv5 目标检测和 Harris/SIFT 角点检测两个经典实验。这篇文章就是想把这条完整的路线图整理出来给正在入门 CV 的同学一条直路避免再走我当年那些弯路。这套组合解决的核心问题只有一个怎么用最短的时间在本地搭建一套足够支撑深度学习实验和传统图像处理实验的 Python 环境。整个链条的底座是 Anaconda它负责管理 Python 版本和第三方库的依赖关系相当于给你装了一个干净整洁的软件管家PyCharm 是写代码和调试代码的前端窗口负责把你写的 Python 脚本和 Anaconda 里的环境对接起来OpenCV 是图像处理的基础库Harris 角点检测和 SIFT 特征提取这类经典算法都封装在里面PyTorch 是深度学习框架YOLOv5 就运行在它之上。把这四层关系理清了后面所有的安装和配置过程就有了清晰的逻辑指引。先说一个总结性的经验也是整篇文章最重要的一个判断凡是环境配置搞到一半进行不下去的八成是版本之间互相打架而不是操作步骤有问题。所以下面所有步骤里我会特别强调版本组合的选择这一点一定要留意。1. 整体设计思路为什么用 Anaconda 作为全链路底座很多新手一开始接触这套环境配置时最容易犯的错误是直接去 Python 官网下载 Python 解释器然后在 PyCharm 里配置这个全局 Python 来装各种包。这个流程对于只写简单脚本的程序来说没有问题但一旦涉及 OpenCV、PyTorch、YOLOv5 这种依赖关系很重的库全局 Python 环境很快就会变成一团乱麻。我自己第一次配环境时就遇到过这样的情况为了装 PyTorch用 pip 命令安装结果把系统里原有的某个库给升级了导致另一个项目里的 OpenCV 直接无法导入报了一堆底层依赖的错误最后只能重装系统才恢复干净状态。后来我彻底转向了 Anaconda 的方案这个坑就再也没踩过。1.1 每个工具在整个体系中的角色定位先理清这条链路上每个工具干了什么活Anaconda不是 Python 本身而是一个 Python 发行版加环境管理工具。它自带 conda 命令可以创建多个相互隔离的 Python 虚拟环境每个环境里可以有不同的 Python 版本和不同的库版本互相不干扰。这就像给你的电脑装了好几个独立的运行沙箱。PyCharm只是代码编辑器它本身不运行 Python 代码也不能直接安装第三方库。它真正的作用是提供一个好用的图形界面让你写代码、调试、查看变量、运行脚本。它需要知道该用哪个 Python 解释器来执行你的代码这个解释器就可以指向 Anaconda 创建的那个虚拟环境。OpenCVC 写的图像处理库Python 里通过 cv2 这个包名来导入。各种传统图像处理算法包括 Harris 角点检测、SIFT 特征提取都在这一个库里。PyTorch深度学习框架负责神经网络的构建、训练和推理YOLOv5 的模型结构和 forward 过程都构建在 PyTorch 的张量计算之上。YOLOv5基于 PyTorch 实现的目标检测算法是一整套包含代码、模型权重、训练脚本、推理脚本的项目代码。这五个工具的关系可以类比成一个餐厅Anaconda 是后厨管理间每个虚拟环境就是一间独立的厨房PyCharm 是点菜和打包的窗口OpenCV 是做传统菜的师傅PyTorch 是深度学习这边的灶台YOLOv5 是跑在 PyTorch 这个灶台上的一个标准化菜品。1.2 为什么不用 pip 全局安装非要用 conda 环境隔离这里要给新手说清楚一个关键逻辑也是后面所有操作的基础认知Python 的第三方包之间是有相互依赖的比如 PyTorch 某版本依赖 numpy 的某个版本范围OpenCV 又依赖 numpy 的另一个版本范围。如果所有包都装在系统全局的 Python 环境里就会出现装 A 的时候把 B 的依赖改了导致 B 不能用的连锁反应。conda 的核心价值就在于环境隔离。你可以为 YOLOv5 单独创建一个环境在里面装 PyTorch、OpenCV、numpy 等库这几个库怎么折腾都不会影响系统里其他 Python 项目的运行。我在实际工作中会对不同项目维护不同的 conda 环境比如 cv_env 专门跑 OpenCV 和 YOLOv5另一个 nlp_env 专门跑自然语言处理的库两者平时老死不相往来要用哪个就激活哪个。2. Anaconda 安装与 conda 基础操作这个章节是整个环境链路的地基Anaconda 安装好了后面的所有事情就顺理成章。2.1 Anaconda 下载安装的详细流程去 Anaconda 官网下载安装包这里只提醒一点下载页面会明确区分 Windows、macOS、Linux 三个平台按照自己的操作系统选对应的安装包就行。Windows 下下载的是 .exe 可执行文件安装过程基本上是下一步、下一步的傻瓜式操作但有三个细节需要特别注意。第一个细节是安装路径的选择。Anaconda 默认会装到用户目录下的 Anaconda3 文件夹这个路径是正常的不需要手动更改。但要注意整个路径中不能有中文或空格否则后面 conda 命令可能会出错。第二个细节是安装过程中的环境变量选项。在安装界面的 Advanced Options 页面会询问是否将 Anaconda 添加到系统 PATH 环境变量这个选项我建议勾选上针对 Windows 用户。虽然官方文档建议不勾选以免影响系统原有 Python但既然你从一开始就是全新安装勾选可以让后面所有命令行的使用更顺手。第三个细节是装完后测试。安装完成后打开命令行窗口Windows 下按 Win R输入 cmd回车输入 conda --version如果能正常输出版本号说明 Anaconda 安装成功。如果提示找不到 conda 命令通常是环境变量没有生效重启命令行窗口一般就能解决。安装完成后建议立刻执行 conda update conda 把这个工具本身升级到最新版本因为新版 conda 在解析依赖时速度更快、更不容易出错。我经历过老版本 conda 安装一个包要转圈十几分钟的情况升级后快了很多。2.2 创建独立的 CV 虚拟环境这是整个环境配置里最关键的一步。我们要创建一个专门的虚拟环境起名 cv_env名字随意指定 Python 版本为 3.9。为什么指定 Python 3.9 而不是最新版本这里有个非常现实的兼容性原因PyTorch 和 YOLOv5 官方的预编译包对 Python 版本有严格的对应关系Python 3.9 是目前兼容性最广的一个版本无论是 PyTorch 还是 OpenCV 的预编译 wheel 包都对 Python 3.9 有很好的支持。我自己试过在 Python 3.11 环境下装 PyTorch虽然可以装上但某些老版本的 YOLOv5 代码在运行时会出现依赖报错。打开命令行执行以下命令conda create -n cv_env python3.9这里 -n 是 name 的意思表示环境名称python3.9 表示在这个环境里安装 Python 3.9 解释器。执行过程中会提示是否确认安装输入 y 回车等待完成即可。创建完成后激活这个环境conda activate cv_env注意命令行前面会出现 (cv_env) 这样的提示符说明当前正在这个虚拟环境中操作。后续所有的 pip 安装、Python 命令执行都必须在这个激活状态下操作。2.3 配置国内镜像源加速这一点是给国内用户特别加的经验Anaconda 官方源和 PyPI 官方源都在国外直接下载依赖包的速度非常慢经常卡在一个几十 MB 的包上下载到一半就断了。解决办法是配置国内镜像源。对于 conda 本身执行以下命令配置清华源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes对于 pip 下载 Python 包配置清华 PyPI 镜像pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple配置好后后续安装包的速度会有质的提升。这里想特别多说一句很多同学配置镜像这一步老是出问题其实核心就一条要注意镜像源的 https 地址不能写错一个字母错了就完全没用。3. PyCharm 安装与连接 Anaconda 环境PyCharm 是整个开发流程里你待得最久的地方它安装起来相对简单真正容易卡住的是怎么把 PyCharm 和刚才创建的 conda 环境对接起来。3.1 PyCharm 社区版与专业版怎么选PyCharm 分为社区版Community和专业版Professional两个版本。社区版完全免费且开源专业版是收费的商业版本。对于计算机视觉这个方向的学习社区版已经足够了它的代码编辑、调试、Git 集成、Python 解释器配置等功能都完全可用。专业版的额外功能比如远程开发、数据库工具、前端框架支持在纯 Python 的 CV 项目中用不上太多。我的建议是直接用社区版完全免费没有任何功能阉割的困扰。3.2 下载安装与新建项目在 PyCharm 官网下载对应系统的安装包Windows 下是 .exe 文件。安装过程同样是下一步式的其中有个 Create Desktop Shortcut 之类的选项建议勾选上方便后续打开。装好后打开 PyCharm选择 New Project。在弹出的创建窗口里有一个非常重要的配置项Location 是项目存放路径这个随意Interpreter 是解释器配置这一步是关键中的关键。第一次创建项目时PyCharm 默认会使用系统自带的 Python 解释器我们需要手动改成刚才创建的那个 cv_env 环境。点击解释器选项旁边的齿轮图标选择 Add Interpreter添加解释器在弹出的窗口里选择 Conda Environment然后选择 Existing Environment已有环境下拉框中就能看到 cv_env 这个环境选中它确认即可。配置完成后在 PyCharm 底部或侧边栏可以看到环境信息显示 Python 3.9 和 cv_env这说明 PyCharm 已经和 Anaconda 的虚拟环境完成了对接。后面在这个项目里写的所有代码都会用 cv_env 这个环境的 Python 解释器来运行安装在这个环境里的所有库也都能在 PyCharm 中直接导入。我遇到过不少同学卡在这一步已经用 conda 创建好环境了但 PyCharm 里导入 cv2 或 torch 还是提示找不到模块。这些问题绝大多数都不需要重装任何东西只要检查一下右下角的解释器设置是否真的指到了 cv_env 这个环境。PyCharm 有时会自动切换解释器如果发现代码里 import cv2 报错第一件事就是去查看解释器设置。4. OpenCV 引入与 Harris / SIFT 角点检测实验环境底座打好了现在我们终于可以开始做第一个正式的计算机视觉实验了。4.1 OpenCV 安装与版本选择在激活了 cv_env 的命令行里执行 pip 安装pip install opencv-python安装完成后验证import cv2 print(cv2.__version__)如果能在控制台输出类似 4.8.0 的版本号说明 OpenCV 安装成功可以正常导入了。这里需要说明一个 OpenCV 生态里的常见困惑为什么有时候 pip install opencv-python 后cv2.xfeatures2d.SIFT_create() 这个函数却不能用原因是 OpenCV 把一部分功能模块包括 SIFT 和 SURF放在了主库之外需要用pip install opencv-contrib-python来安装带扩展模块的版本SIFT 就是典型例子。所以如果你打算做 SIFT 角点检测实验请确认安装的是 opencv-contrib-python 而不是 opencv-python或者两个都装上contrib 版本已经包含核心功能可以替代 opencv-python。我的建议是直接安装pip install opencv-contrib-python这样核心功能和扩展功能都有了。另外不管装哪个版本如果之前已经装过 opencv-python建议先卸载pip uninstall opencv-python再安装 contrib 版本避免两个包冲突导致导入报错。4.2 角点检测实验 1Harris 角点检测Harris 角点检测是传统图像处理里最经典的角点检测算法它的核心思想是图像中角点所在的区域在任意方向上进行微小移动时灰度变化都非常明显。直白点说平坦区域的灰度基本不变边缘区域只在一个方向上变化明显而角点区域在多个方向上都变化明显。在 OpenCV 中调用 Harris 角点检测非常方便完整的步骤是通过 cornerHarris 函数实现的。下面是完整的实验代码我加了一些处理便于可视化import cv2 import numpy as np # 读取图片并转换为灰度图 img cv2.imread(your_image.jpg) gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换为 float32 类型因为 cornerHarris 需要这种类型 gray np.float32(gray) # 调用 Harris 角点检测 # 参数解释src 输入图像blockSize 邻域大小ksize Sobel 算子孔径大小k 角点响应函数自由参数 dst cv2.cornerHarris(gray, blockSize2, ksize3, k0.04) # 膨胀角点结果便于显示让角点标记更大更明显 dst cv2.dilate(dst, None) # 通过阈值筛选角点在原图中标记出来 # 使用 0.01 * dst.max() 作为阈值只显示响应值较强的角点 img[dst 0.01 * dst.max()] [0, 0, 255] # 显示结果 cv2.imshow(Harris Corners, img) cv2.waitKey(0) cv2.destroyAllWindows()运行步骤非常简单在 PyCharm 里新建一个 Python 文件把上面的代码复制进去把图片路径改成你自己准备好的图片可以随便用手机拍一张有明显物体轮廓的图或者是叉车、格子布这类角点较多的图片然后运行。这里想提醒一下理解原理的重要性cornerHarris 里的 blockSize 参数表示计算角点响应时考虑的邻域范围数值越大检测到的角点越稀疏k 参数是经验值影响角点检测的灵敏度一般取 0.04 到 0.06 之间。如果你发现检测出的角点太多或者太少优先调节这两个参数而不是不调节就认为算法有问题。4.3 角点检测实验 2SIFT 特征检测SIFTScale-Invariant Feature Transform尺度不变特征变换比 Harris 复杂得多它的核心能力是检测出对尺度变化、旋转、光照变化都保持稳定的关键点并且为每个关键点计算一个 128 维的特征描述子。简单说Harris 能找到角点SIFT 在能找到角点的同时还能给出这个角点独一无二的数值指纹后续可以通过这些指纹做图像匹配。在 OpenCV 中使用 SIFT 的代码非常简洁import cv2 # 读取图片并转换为灰度图 img cv2.imread(your_image.jpg) gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 创建 SIFT 检测器 # 注意在旧版本 OpenCV 中是 cv2.xfeatures2d.SIFT_create() # 新版本 OpenCV 中直接使用 cv2.SIFT_create() sift cv2.SIFT_create() # 检测关键点并计算描述子 keypoints, descriptors sift.detectAndCompute(gray, None) # 在图像上绘制关键点 # 参数解释result_image 输出图像keypoints 关键点None 表示不绘制描述子特征邻域 img_with_keypoints cv2.drawKeypoints(gray, keypoints, None, flagscv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) # 显示结果 cv2.imshow(SIFT Keypoints, img_with_keypoints) cv2.waitKey(0) cv2.destroyAllWindows() # 打印关键点数量和描述子维度 print(f检测到关键点数: {len(keypoints)}) print(f描述子维度: {descriptors.shape if descriptors is not None else 未生成})运行后图像上会绘制出很多圆圈每个圆圈的中心是一个关键点圆圈的大小代表了该关键点的尺度半径越大表示该特征能匹配更大范围的图像缩放径向线表示这个关键点的主方向。关于 cv2.SIFT_create() 和 cv2.xfeatures2d.SIFT_create() 的区别很多老教程还在用后者但如果你的 OpenCV 版本是 4.x直接使用高版本的写法 cv2.SIFT_create() 就行。用旧用法会报 AttributeError 错误因为 xfeatures2d 这个模块在新的 OpenCV 中不再默认暴露。5. PyTorch 安装与 YOLOv5 环境搭建、实验运行角点检测实验跑通了说明传统图像处理环境已经扎实了。接下来进入深度学习的部分安装 PyTorch 并运行 YOLOv5 目标检测。5.1 PyTorch 安装CPU 版还是 GPU 版PyTorch 的安装是整个环境配置中最容易出现分歧的一步因为要不要装 GPU 版本完全取决于你的电脑有没有 NVIDIA 独立显卡以及是否已经装好了对应的显卡驱动。先看怎么判断自己的机器适不适合装 GPU 版本。Windows 下按下 Win R输入 cmd 回车在命令行里执行 nvidia-smi如果能正常输出显卡信息和驱动版本号说明你的电脑有 NVIDIA 显卡且驱动已经装好可以考虑装 GPU 版的 PyTorch。如果提示 nvidia-smi 不是内部或外部命令说明没有 N卡或者驱动未装那就老老实实装 CPU 版。对于大多数入门用户和没有独显的同学CPU 版的 PyTorch 完全够用。YOLOv5 用 CPU 跑推理确实会比 GPU 慢不少一张普通图片可能要几秒到十几秒但对于理解算法流程、跑通模型、做小规模实验来说没有任何问题。安装 CPU 版本的 PyTorch 最简单的方法是pip install torch torchvision这样默认会安装 CPU 版本除非你的环境恰好在 Linux 且有 CUDA否则默认基本是 CPU 版本为了保险起见我建议明确指定安装 CPU 版本去 PyTorch 官网的 Get Started 页面选择对应配置会给出具体的 pip 安装命令。判断是否安装成功在 Python 命令行里执行import torch print(torch.__version__) print(torch.cuda.is_available())如果 torch.version能正常输出版本号说明 PyTorch 安装成功。torch.cuda.is_available() 输出 False 是正常的说明当前使用的是 CPU 版本。如果输出 True说明你的机器正以 GPU 模式运行 PyTorch。这里要明确一个概念说到底 PyTorch CPU 版本和 GPU 版本在代码层面没有任何区别你的神经网络代码完全一样区别只是底层计算时用的是 CPU 的张量运算还是 GPU 的 CUDA 张量运算。所以入门阶段直接装 CPU 版本不会影响你学习任何 PyTorch 和 YOLOv5 的代码逻辑。5.2 在同一个环境里验证 torch 和 cv2 协同工作因为我们要用同一个 cv_env 环境跑所有实验安装完 PyTorch 后最好验证一下 torch 和 opencv 能不能同时在这个环境里正常导入。在 Python 中输入import cv2 import torch import numpy as np print(OpenCV version:, cv2.__version__) print(PyTorch version:, torch.__version__) # 用 torch 创建一个张量转换后交给 OpenCV 做简单处理后显示大小 tensor_img torch.rand(3, 224, 224) numpy_img tensor_img.numpy() print(Tensor shape:, tensor_img.shape) print(Numpy array shape:, numpy_img.shape)能正常打印出所有信息说明 torch、cv2、numpy 三者在这个环境中已经形成了一个稳定的依赖体系。这一步验证非常有必要比一个个单独装完就认为成功靠谱得多。5.3 安装 YOLOv5 完整流程与踩坑记录YOLOv5 的官方项目托管在 GitHub 上安装分为四步克隆项目代码、安装项目依赖、下载模型权重、运行推理脚本。第一步在命令行中激活 cv_env然后进入你想放置项目的目录执行git clone https://github.com/ultralytics/yolov5.git cd yolov5如果没有安装 Git可以去 Git 官网下载安装或者直接在 GitHub 页面上下载 ZIP 压缩包解压后进入目录。我个人更推荐用 git clone因为后续如果想拉取项目更新会非常方便。第二步安装依赖pip install -r requirements.txt这一步是 YOLOv5 安装过程中最容易出问题的一步。requirements.txt 文件里列出了所有依赖包包括 torch、torchvision、opencv-python、matplotlib、pandas、seaborn 等一大堆。因为我们已经先手动装好了 torch 和 torchvision所以 requirements.txt 在执行时会检查并跳过已经安装好的依赖。但如果依赖版本之间有冲突pip 会报错此时最常见的解决思路是先把 requirements.txt 里的 torch 和 torchvision 几行内容删掉只安装剩下的依赖因为这两个我们已经单独处理过了。第三步下载模型权重。YOLOv5 有多个不同大小的模型yolov5s最小最快、yolov5m、yolov5l、yolov5x最大最准。入门推荐下载 yolov5s.pt因为体积小约 14MB推理速度快精度也够用。可以手动去 GitHub Releases 页面下载也可以直接运行代码让 YOLOv5 自动下载。第四步运行推理。在 YOLOv5 项目目录下执行python detect.py --source data/images/bus.jpg --weights yolov5s.pt --conf-thres 0.5这里 --source 指定输入图片--weights 指定模型权重文件--conf-thres 是置信度阈值表示只有置信度高于 0.5 的检测结果才会显示。YOLOv5 项目自带的 data/images 目录里有一些测试图片直接拿来验证非常方便。运行完成后检测结果图会保存在 runs/detect/exp 目录下打开就能看到汽车、人、公交车等物体被画上了边界框框的上方标注了类别名称和置信度。看到这张图说明 YOLOv5 已经从安装到推理整个流程全部打通了。5.4 尝试用 YOLOv5 检测自己的图片官方测试图片跑通之后顺手把 --source 参数改成自己的图片路径就能检测你手头任意一张图片里的物体了python detect.py --source /path/to/your_image.jpg --weights yolov5s.pt --conf-thres 0.5也可以直接改文件名和图片路径放进 YOLOv5 项目目录后用相对路径指定即可。实测下来YOLOv5s 模型对常见物体人、车、猫、狗、手提包等 COCO 数据集里的 80 个类别识别效果很有保障照片里的物体只要有基本的轮廓和清晰度基本都能框出来。有个常见问题如果 detect.py 报错提示 No module named torchvision 或者其他模块缺失原因几乎可以断定是当前命令行没有激活 cv_env 环境。在命令行里先执行 conda activate cv_env再重新运行 detect.py 就能解决。6. 常见问题排查与避坑指南到目前为止整个环境链路已经全部打通。最后把这些年在各类论坛、答疑群和实际经验中积累的几个高频问题整理成一个速查表方便读者对照解决。6.1 高频报错的解决思路汇总报错信息具体分析解决方案No module named cv2OpenCV 没装进当前环境或当前 Python 解释器和安装 OpenCV 的环境不一致检查 PyCharm 解释器设置是否指向 conda 的 cv_env在命令行执行 conda activate cv_env 再安装 opencv-contrib-pythonNo module named torchPyTorch 未安装或环境不对在 cv_env 环境执行 pip install torch torchvision确认当前命令行显示 (cv_env) 前缀ModuleNotFoundError: No module named torchvisionYOLOv5 依赖中缺少 torchvision在 cv_env 中安装pip install torchvisionAttributeError: module cv2 has no attribute xfeatures2dOpenCV 版本过高或没有安装 contrib 版本安装 opencv-contrib-python并把代码改为 cv2.SIFT_create()运行 detect.py 报错错误信息中包含 CUDA当前机器没有N卡驱动但系统装到了带 CUDA 支持的 PyTorch 包重新安装 CPU 版本 PyTorchpip install torch torchvision --index-url https://download.pytorch.org/whl/cpupip 下载很慢或卡住连接官方源慢导致配置国内 PyPI 镜像清华、阿里云均可详细命令见 2.3 节conda 创建环境时卡在 Solving environment源连接慢或 conda 版本过旧先执行 conda update conda 更新到最新版再配置国内 conda 镜像源后重试6.2 YOLOv5 训练自己的数据集需要准备什么很多同学跑通检测之后下一步自然就想用自己的数据集来训练模型。这里提前给打一个预防针训练是一个比安装配置复杂得多的工作核心流程是标注数据用 LabelImg 或 Label Studio 画边界框并标注类别→ 整理数据集格式YOLO 格式的标注文件是 .txt 文件每行表示一个目标格式为类别编号 x_center y_center width height坐标值都是相对图片尺寸的归一化小数→ 修改 YOLOv5 的 data 配置文件指定数据集路径和类别名列表→ 修改模型配置文件调整类别数→ 执行 train.py。我没有在这里展开训练细节因为只要你完整跑通了本文的内容说明环境层面已经完全没有障碍了后续训练时面对报错就能自然而然地排查那才是真正进阶的开始。6.3 我踩过最深的坑希望你一步避开最后分享两个自己在实际配置中印象最深的坑都是把系统弄到几乎崩溃级别才总结出来的经验。第一个坑是混用 conda 和 pip 安装大型库导致的底层依赖裂开。具体表现是用 conda 装了 PyTorch之后又用 pip 装了另一版本的 torch两个版本在环境里互相覆盖最后 import torch 直接报错。正确做法是一个环境里安装大型框架尽量固定在同一个包管理工具上来管理。我的习惯是环境创建用 conda环境内的包安装也优先用 conda如果某个包只有 pip 版本例如很多 GitHub 项目里的自定义包再单独用 pip 装但装之前先看清楚会不会动到已经装好的核心库。第二个坑是没有养成每装一个包就验证一次的习惯。很多人一上来就把所有东西装完然后一次性跑代码报错时根本不知道是哪一步出了问题只能全部卸载重装。我的做法是每装完一个组件就立刻写一行 import 语句验证能不能导入、能不能正常显示版本号。这样一个环节一个环节地确认即使出了问题也能在 5 分钟内定位到具体是哪个环节出了纰漏而不是花上一天时间反复卸载重装整个系统。这套环境配置流程是我从零基础摸爬滚打到现在认为最稳妥、最省心的一条路线。按着这个顺序走一遍你得到的不仅是一个能跑的 YOLOv5 和两个角点检测实验更是对 Python 环境管理、依赖关系、深度学习项目结构一次完整的系统认知。这种底层的环境搭建能力在以后的每一个 CV 项目里都会派上用场。
返回列表