open-mmlab/OpenMMLabCourse:OpenMMLab课程索引及相关内容
MMDetection 环境搭建保姆级指南(支持50系列显卡)_mmdetection windows安装-CSDN博客
本地编译mmcv-ful、mmdet、mmpose等老版本_50系列显卡安装mmcv-CSDN博客
只能说问AI有AI的好处,但是查资料还是不能只依赖ai,生成的信息毕竟不是很实时的,而且可能就是来回进行修改,并且他每次都会和你说这次一定没问题,AI会惩罚每一个不认真学习的人。
当前系统是WIN11,RTX 5060,CUDA 12.8,python 3.9,Torch3.8,mmcv 2.2.0,mmdetection 3.3.0.
安装遇到的问题是5060的架构需要Torch在2.5以上,但是mmcv安装Windows下找到最高是2.3.x,如果是问AI大概率就是让你直接使用命令行安装(如pip install mmcv==2.2.0 -f https://download.openmmlab.com/mmcv/dist/cu121/torch2.3/index.html),直接访问这个网站是存在的,但是替换成CUDA12.8以及torch2.5之后就会发现网址显示"此 XML 文件似乎没有与之关联的任何样式信息。",所以只能通过源码构建。but这个时候AI会让你删掉当前环境的torch,让你重新安装低版本的torch,最后的结果就是pytorch也无法使用,于是当前的思路就是先根据GPU的型号确定CUDA和torch的版本,之后再通过源码安装mmcv。
安装Anaconda
这个看个人习惯,我平时使用的是conda来进行环境管理。
2024年最新版Anaconda3的安装配置及使用教程(非常详细),从零基础入门到精通,看完这一篇就够了(附安装包)-CSDN博客
安装CUDA和cuDNN
CUDA和cuDNN的安装_cuda12.8对应的cudnn-CSDN博客
download.pytorch.org/whl/cu128/torch/
CUDA GPU Compute Capability | NVIDIA Developer
也可以在命令行执行下面这条命令(这个算力我没弄懂)。
查询 NVIDIA GPU 的 计算能力(Compute Capability)并以 CSV 格式显示结果。
bash
nvidia-smi --query-gpu=compute_cap --format=csv

显示当前系统中 NVIDIA CUDA 编译器的版本信息。
bash
nvcc -V
监控和管理 NVIDIA GPU 设备。
bash
nvidia-smi
安装Git
Git - Install for Windows
https://git-scm.com/install/windowsGit基本使用(很详细)-CSDN博客
https://blog.csdn.net/qq_45796592/article/details/128953729?ops_request_misc=elastic_search_misc&request_id=468c0d2ecd7ad36f6ef0335ed9fea595&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-128953729-null-null.142^v102^pc_search_result_base7&utm_term=git&spm=1018.2226.3001.4187如果不安装这个也可以手动访问网址进行下载(安装时,勾选将git添加到Path,如果忘记勾选需要手动配置环境变量)。
安装Visual Studio 2022
https://pan.baidu.com/s/1omTYg7w0pftwD4PdtVtofw?pwd=5566
https://pan.baidu.com/s/1omTYg7w0pftwD4PdtVtofw?pwd=5566这个我一开始就是用的2022,mmcv提到的是2019版本的,我没试过。
安装"使用C++的桌面开发",下载安装可以设置一下位置,有些位置不能修改就是必须要安装在C盘。

安装python3.9
我这里使用的是3.9版本的python环境。
名字可以根据命名规范来起,尽量和项目是相关的。
使用 conda 包管理器创建一个新的虚拟环境,环境名称为 mmcv,并指定在该环境中安装 Python 3.9版本,同时自动确认创建操作。
bash
conda create -n mmcv python=3.9 -y
激活名为 mmcv 的 Conda 虚拟环境。
bash
conda activate mmcv
退出当前激活的环境(如果需要)
bash
conda deactivate
查看所有conda环境(如果需要)
bash
conda info --envs
永久删除mmcv环境(如果需要)
bash
conda remove -n mmcv --all -y
安装pytorch
开始
https://pytorch.org/get-started/locally/

使用 pip 从 PyTorch 官方指定的索引地址安装适用于 CUDA 12.8 版本的 PyTorch 和 torchvision 包 。(我使用PyTorch 2.10.0版本出现ninja 编译失败以及_ext 模块缺失,所以我这里使用PyTorch 2.8.0)
bash
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu128
阿里云镜像
bash
pip3 install torch torchvision -f https://mirrors.aliyun.com/pytorch-wheels/cu128/
上海交通大学镜像
bash
pip3 install torch torchvision -f https://mirror.sjtu.edu.cn/pytorch-wheels/cu128
# 或者使用通用的索引页
pip3 install torch torchvision -f https://mirror.sjtu.edu.cn/pytorch-wheels/torch_stable.html
快速检查 PyTorch 及其相关组件是否已安装及其版本。
bash
pip list | findstr torch
torch 2.8.0+cu128
torchvision 0.23.0+cu12
验证 PyTorch 及其 GPU 支持是否安装正确(运行代码)。
python
import torch, torchvision
print(torch.__version__)
print(torch.version.cuda)
print(torch.cuda.is_available())
print(torch.cuda.get_device_name(0))
2.8.0+cu128
12.8
True
NVIDIA GeForce RTX 5060 Laptop GPU
安装mmcv
从这里看到最高torch是2.3.x。

克隆仓库
bash
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
如果网络太差或者没有安装Git也可以手动下载解压,下载完是mmcv-main.zip,我解压后会把-main删除,保留"mmcv"。之后就是命令行执行cd mmcv。
open-mmlab/mmcv:OpenMMLab计算机视觉基金会
https://github.com/open-mmlab/mmcv

安装并加快编译速度ninja psutil
bash
pip install -r requirements/optional.txt
设置MSVC编译器
设置环境变量,添加到 ,这样它将在提示词中显示,如下所示。C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx86\x64 PATH cl.exe.
我是使用Everything软件搜索cl.exe就出来了,我的路径是D:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x86。Windows设置环境变量就是此电脑(右键)->点击"属性"进入"系统信息"窗口->点击"高级系统设置"进入"系统属性"窗口->点击"环境变量"进入"环境变量"窗口->在"系统变量"里面找到"Path"->点击"新建"后输入cl.exe的路径(不包含cl.exe)->一直点击"确定"(详细环境变量设置可以自行百度)。
bash
cl
(mmcv) PS E:\code\OpenMMLabCourse\mmcv> cl
用于 x86 的 Microsoft (R) C/C++ 优化编译器 19.44.35221 版
版权所有(C) Microsoft Corporation。保留所有权利。
用法: cl [ 选项... ] 文件名... [ /link 链接选项... ]
CUDA工具包设置
将当前会话中的 CUDA_HOME 环境变量指向指定的 CUDA 12.8 安装路径。
bash
$env:CUDA_HOME = "D:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8"
设置CUDA目标拱
设置 PyTorch 编译 CUDA 扩展时目标 GPU 架构的环境变量。
bash
$env:TORCH_CUDA_ARCH_LIST = "12.0"
$env:TORCH_DISABLE_DYNAMO = "1"
构建与安装
需要先设置CUDA的相关信息,要不然安装的是cpu版本的mmcv。
bash
python setup.py build_ext -j4
(mmcv) PS E:\code\OpenMMLabCourse\mmcv> python setup.py build_ex
Traceback (most recent call last):
File "E:\code\OpenMMLabCourse\mmcv\setup.py", line 5, in <module>
from pkg_resources import DistributionNotFound, get_distribution, parse_version
ModuleNotFoundError: No module named 'pkg_resources'
补一个安装"python -m pip install setuptools==69.5.1 --upgrade --force-reinstall ",第一次都没问题,重新弄一次到处是问题(这里不确定是不是PyTorch版本问题导致的)。
bash
python -c "from
pkg_resources import DistributionNotFound, get_distribution, parse_version; print('✅ pkg_resources 模块导入成功!')"
<string>:1: DeprecationWarning: pkg_resources is deprecated as
an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
✅ pkg_resources 模块导入成功!
之后重新执行"python setup.py build_ext ",这个过程会输出很多警告,不需要管,构建需要一段时间。
正在创建库 E:\code\OpenMMLabCourse\mmcv\build\temp.win-amd64
-cpython-39\Release\mmcv\ops\csrc\pytorch\cpu\_ext.cp39-win_am
d64.lib 和对象 E:\code\OpenMMLabCourse\mmcv\build\temp.win-amd
64-cpython-39\Release\mmcv\ops\csrc\pytorch\cpu\_ext.cp39-win_amd64.exp
正在生成代码
已完成代码的生成
bash
python setup.py develop
中途出现File "D:\ProgramData\anaconda3\envs\mmcv\lib\site-packages\setuptools\command\develop.py", line 39, in run subprocess.check_call(cmd) File "D:\ProgramData\anaconda3\envs\mmcv\lib\subprocess.py", line 373, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['D:\\ProgramData\\ana conda3\\envs\\mmcv\\python.exe', '-m', 'pip', 'install', '-e', '.', '--use-pep517']' returned non-zero exit status 1.
bash
pip install 'setuptools<60'
我觉得就是我当前网络不好,这个第一次明明是没有问题的,第二次反而出现一些包安装网络超时,把报错的地方单独安装了一遍,重新运行"python setup.py develop"。
bash
pip install regex==2023.12.25 -i https://mirrors.aliyun.com/pypi/simple/ --user
pip install opencv-python==4.8.1.78 -i https://mirrors.aliyun.com/pypi/simple/
pip install addict mmengine>=0.3.0 yapf numpy==1.26.4 cython setuptools_scm -i https://mirrors.aliyun.com/pypi/simple/ --timeout 120
Using d:\programdata\anaconda3\envs\mmcv\lib\site-packages
Searching for six==1.17.0
Best match: six 1.17.0
Adding six 1.17.0 to easy-install.pth file
Using d:\programdata\anaconda3\envs\mmcv\lib\site-packages
Finished processing dependencies for mmcv==2.2.0
bash
python .dev_scripts/check_installation.py
(mmcv) PS E:\code\OpenMMLabCourse\mmcv> python .dev_scripts/check_installation.py
Start checking the installation of mmcv ...
CPU ops were compiled successfully.
CUDA ops were compiled successfully.
mmcv has been installed successfully.
Environment information:
sys.platform: win32
Python: 3.9.23 | packaged by conda-forge | (main, Jun 4 2025, 17:49:16) [MSC v.1929 64 bit (AMD64)]
CUDA available: True
MUSA available: False
numpy_random_seed: 2147483648
GPU 0: NVIDIA GeForce RTX 5060 Laptop GPU
CUDA_HOME: D:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8
NVCC: Cuda compilation tools, release 12.8, V12.8.61
MSVC: 用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.44.35221 版
GCC: n/a
PyTorch: 2.8.0+cu128
PyTorch compiling details: PyTorch built with:
C++ Version: 201703
MSVC 193833145
Intel(R) oneAPI Math Kernel Library Version 2025.2-Product Build 20250620 for Intel(R) 64 architecture applications
Intel(R) MKL-DNN v3.7.1 (Git Hash 8d263e693366ef8db40acc569cc7d8edf644556d)
OpenMP 2019
LAPACK is enabled (usually provided by MKL)
CPU capability usage: AVX512
CUDA Runtime 12.8
NVCC architecture flags: -gencode;arch=compute_61,code=sm_
61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_7
5,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch
=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90;-ge
ncode;arch=compute_100,code=sm_100;-gencode;arch=compute_120,code=sm_120
CuDNN 91.0.2 (built against CUDA 12.9)
Magma 2.5.4
Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, COMMIT_
SHA=a1cb3cc05d46d198467bebbb6e8fba50a325d4e7, CUDA_VERSION=12.
8, CUDNN_VERSION=9.10.2, CXX_COMPILER=C:/actions-runner/_work/
pytorch/pytorch/pytorch/.ci/pytorch/windows/tmp_bin/sccache-cl
.exe, CXX_FLAGS=/DWIN32 /D_WINDOWS /EHsc /Zc:__cplusplus /bigo
bj /FS /utf-8 -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO -DLIBKIN
ETO_NOROCTRACER -DLIBKINETO_NOXPUPTI=ON -DUSE_FBGEMM -DUSE_XNN
PACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE /wd4624 /wd4068 /wd4067
/wd4267 /wd4661 /wd4717 /wd4244 /wd4804 /wd4273, LAPACK_INFO=
mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, TORCH_VERSION=2.8.0, U
SE_CUDA=ON, USE_CUDNN=ON, USE_CUSPARSELT=OFF, USE_GFLAGS=OFF,
USE_GLOG=OFF, USE_GLOO=ON, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=
OFF, USE_NCCL=OFF, USE_NNPACK=OFF, USE_OPENMP=ON, USE_ROCM=OFF, USE_ROCM_KERNEL_ASSERT=OFF, USE_XCCL=OFF, USE_XPU=OFF,
TorchVision: 0.23.0+cu128
OpenCV: 4.8.1
MMEngine: 0.10.7
MMCV: 2.2.0
MMCV Compiler: MSVC 194435221
MMCV CUDA Compiler: 12.8
也有使用开发模式安装的(如果需要,这个没有单独验证,不确定能不能安装)。
bash
pip install -e .
mmcv的版本可以在mmcv/mmcv/version.py里面看到(因为他会生成一些文件,所以之后如果创建新的环境需要用到mmcv就需要重新复制一份mmcv,然后重复进行上述的操作,不然之前已经配置好的环境可能会报错)。
清除之前的构建残留
bash
Remove-Item -Recurse -Force build -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force mmcv/_ext.* -ErrorAction SilentlyContinue
安装mmdetection
开始你的第一步 --- MMDetection 3.3.0 文档
open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark
克隆仓库
bash
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
安装
bash
pip install -v -e .
Installed e:\code\openmmlabcourse\mmdetection
Successfully installed mmdet pycocotools-2.0.11 scipy-1.13.1 shapely-2.0.7 terminaltables-3.1.10 tqdm-4.67.3
验证安装
安装 mim 工具
bash
pip install openmim -i https://mirrors.aliyun.com/pypi/simple/
验证 mim 是否安装成功
bash
mim --version
mim, version 0.3.9
下载配置文件和模型权重文件
bash
mim download mmdet --config rtmdet_tiny_8xb32-300e_coco --dest .
rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth exists in E:\code\OpenMMLabCourse\mmdetection
Successfully dumped rtmdet_tiny_8xb32-300e_coco.py to E:\code\OpenMMLabCourse\mmdetection
如果运行代码还是报错可以关闭编译器或者重启内核重新运行。
python
import sys
import torch
import mmcv
import mmdet
# 仅打印实际环境信息,兼容所有 MMCV 2.2.0 版本(CPU/GPU)
print("===== 实际环境信息 =====")
# Python 信息
print(f"Python 版本: {sys.version.split()[0]}")
# PyTorch & CUDA 信息
print(f"PyTorch 版本: {torch.__version__}")
print(f"CUDA 是否可用 (PyTorch): {torch.cuda.is_available()}")
print(f"PyTorch 编译的 CUDA 版本: {torch.version.cuda}")
# GPU 信息(若CUDA可用)
if torch.cuda.is_available():
print(f"GPU 型号: {torch.cuda.get_device_name(0)}")
print(f"GPU 数量: {torch.cuda.device_count()}")
# MMCV 信息(兼容 CPU/GPU 版本)
print(f"MMCV 版本: {mmcv.__version__}")
# 兼容判断 MMCV CUDA 相关属性
if hasattr(mmcv, 'has_cuda'):
print(f"MMCV CUDA 算子是否可用: {mmcv.has_cuda}")
elif hasattr(mmcv, 'ops') and hasattr(mmcv.ops, 'is_available'):
print(f"MMCV CUDA 算子是否可用: {mmcv.ops.is_available()}")
else:
print(f"MMCV CUDA 算子是否可用: 未检测到(可能为CPU版本)")
# 兼容获取 MMCV 编译信息
try:
print(f"MMCV 编译的 CUDA 版本: {mmcv.get_compile_cuda_version()}")
except AttributeError:
print(f"MMCV 编译的 CUDA 版本: 未编译 CUDA(CPU版本)")
try:
print(f"MMCV 编译的 PyTorch 版本: {mmcv.get_compile_version()}")
except AttributeError:
print(f"MMCV 编译的 PyTorch 版本: 无法获取(CPU版本)")
# MMDetection 信息
print(f"MMDetection 版本: {mmdet.__version__}")
print("===== 信息打印完成 =====")
===== 实际环境信息 =====
Python 版本: 3.9.23
PyTorch 版本: 2.8.0+cu128
CUDA 是否可用 (PyTorch): True
PyTorch 编译的 CUDA 版本: 12.8
GPU 型号: NVIDIA GeForce RTX 5060 Laptop GPU
GPU 数量: 1
MMCV 版本: 2.2.0
MMCV CUDA 算子是否可用: 未检测到(可能为CPU版本)
MMCV 编译的 CUDA 版本: 未编译 CUDA(CPU版本)
MMCV 编译的 PyTorch 版本: 无法获取(CPU版本)
MMDetection 版本: 3.3.0
===== 信息打印完成 =====
这个输出使用的是cpu,但是运行确实可以用gpu跑起来(参考lec4.ipynb里面的代码进行修改)。
这里自己还没弄懂,感觉还没用到mmdetection,目前感觉都是AI生成的代码,并没有使用到mmdetection里面的模版。
总结
当前还在摸索中,目前只会通过AI修改运行出OpenMMLab里面的示例代码,正在摸索复现论文,最大的感受还是AI只是辅助,终究还是要自己查找资料来理解学习。