MMCV包的安装教程

首先找到conda create -n mmsegmention python=3.8 -y #

找到对应的pytorch与cuda版本

简洁的告诉我,如果我的电脑gpu的cuda版本是12.8,那我在不同的虚拟环境中能不能安装不同的cuda版本,为什么可以安装不同的,而不是12.8?

答案:可以,而且很常见。


🎯 为什么可以

CUDA 有两层:

  1. GPU驱动的CUDA(12.8)
    • 你电脑GPU安装的,不能改
    • 是硬件层面的
  2. PyTorch打包的CUDA(可以任选)
    • 是软件包内部的
    • 只要 ≤ GPU驱动CUDA版本就行
    • 跟GPU驱动的CUDA可以不一样

查看对应的mmcv官网查找对应的mmcv安装:

https://mmcv.readthedocs.io/zh-cn/latest/get_started/installation.html#install-mmcv

https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html可查看cu102-torch1.8.0支持的mmcv版本号https://download.openmmlab.com/mmcv/dist/cu102/torch1.8.0/index.html

现在我下载了"D:\download\mmcv_full-1.3.0-cp36-cp36m-manylinux1_x86_64.whl",请问怎么安装到我的虚拟环境中?(swin)

xieqihang@xie666 MINGW64 /d/github/Swin-Transformer-Semantic-Segmentation-main

🎯 cp 是什么

cp = CPython版本号


📋 对应表

复制代码
cp36 → Python 3.6
cp37 → Python 3.7
cp38 → Python 3.8
cp39 → Python 3.9
cp310 → Python 3.10

📌 你的文件名解析

以这个为例:

复制代码
mmcv_full-1.4.3-cp38-cp38-win_amd64.whl
                 ^^^^
                 Python 3.8

⚠️ 重要

你必须下载与你的Python版本匹配的wheel

检查你的Python版本:

复制代码
python --version

假设输出是 Python 3.8.x,那就要下载 cp38 的wheel:

复制代码
mmcv_full-1.4.3-cp38-cp38-win_amd64.whl  ✓

1.conda create -n swin python3.7

2. https://pytorch.org/get-started/previous-versions/

conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=10.2 -c pytorch

3.export HTTP_PROXY="http://127.0.0.1:7897"

export HTTPS_PROXY="http://127.0.0.1:7897"

4.pip install ./mmcv_full-1.4.0-cp37-cp37m-win_amd64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple

这个报错 不是你代码的问题 ,而是一个非常典型、而且很"致命"的 OpenMMLab 版本冲突问题

我先给你一句话结论,再一步步解释,最后给你必成功的修复方案


❌ 一句话结论(先记住)

你同时安装了 mmcv 2.xmmcv-full 1.4.0
而你的项目是基于「老版 mmcv 1.x API」的,
两套 API 完全不兼容,直接导致 print_log 找不到。


🔍 报错核心是什么?

报错信息

复制代码
ImportError: cannot import name 'print_log' from 'mmcv'

出错位置

复制代码
from mmcv import print_log

实际情况

你当前环境里:

复制代码
mmcv        2.0.0rc1   ❌(新架构)
mmcv-full   1.4.0     ❌(老架构)
mmengine    0.10.7    ❌(新架构)

👉 mmcv 2.x 已经把 print_log 移走 / 删除了

👉 老代码还在用 mmcv.print_log

👉 于是直接炸


🧠 为什么会这样?(原理讲清楚)

OpenMMLab 有一次大重构

时代 核心组件
老版(你这个项目) mmcv 1.x + mmcv-full
新版 mmcv 2.x + mmengine
老版代码(你的项目在用)
复制代码
from mmcv import print_log
from mmcv.runner import BaseRunner
新版架构(你现在装的)
复制代码
mmcv 2.x   → 只保留 utils / ops
mmengine   → runner / logging / hooks

👉 API 不兼容是"设计层面的",不是小 bug


🚨 你现在环境里的致命问题(必须修)

❌ 同时存在:

  • mmcv==2.0.0rc1

  • mmcv-full==1.4.0

  • mmengine==0.10.7

这是 100% 错误组合


✅ 必成功修复方案(强烈推荐)

🎯 目标版本组合(与你的代码 100% 匹配)

组件 版本
Python 3.7
torch 1.8.0
torchvision 0.9.0
mmcv-full 1.4.0
mmcv ❌ 不单独装
mmengine ❌ 不装
mmsegmentation 0.29.x / 0.30.x(老版)

🛠️ 修复步骤(一步一步照做)

① 卸载所有冲突包(关键)

复制代码
pip uninstall mmcv mmcv-full mmengine mmsegmentation -y

确认干净:

复制代码
pip list | findstr mmcv

👉 不应该再看到 mmcv / mmengine


② 重新安装 mmcv-full 1.4.0(只装这一个)

你已经有 wheel,对 Windows 很好:

复制代码
pip install ./mmcv_full-1.4.0-cp37-cp37m-win_amd64.whl

验证:

复制代码
python - <<EOF
import mmcv
print(mmcv.__version__)
print(mmcv.print_log)
EOF

✅ 应该能 import 成功


③ 安装「老版」mmsegmentation(必须)

复制代码
pip install mmsegmentation==0.29.1

(如果项目 README 指定了版本,用它)


④ 再跑你的训练命令

复制代码
python tools/train.py configs/swin/upernet_swin_tiny_224x224_160k_hanfeng.py

❌ 千万不要做的事(重要)

  • ❌ 不要装 mmcv==2.x

  • ❌ 不要装 mmengine

  • ❌ 不要混用新老 mmseg

  • ❌ 不要 pip install mmcv(会覆盖 mmcv-full)


🧠 一句话总结(你可以拿去给别人解释)

这个错误是由于项目基于 mmcv 1.x,而环境中误装了 mmcv 2.x 和 mmengine,导致旧 API(print_log)缺失。解决方法是回退到 mmcv-full 1.x 并移除 mmcv 2.x 相关组件。


🔥 如果你愿意,我可以继续帮你:

  • 对照你的 GitHub 项目,给你一套"完全一致"的版本表

  • 帮你检查这个 Swin 配置文件是否和 mmseg 版本匹配

  • 一步到位给你一个 environment.yml

我找到问题了!错误显示你使用的是 site-packages 中安装的标准 mmsegmentation,而不是这个项目的自定义版本。这个Swin Transformer项目需要使用项目本地的代码,因为它包含了自定义的 SwinTransformer 实现。

解决办法:

① 手动安装兼容的 timm(不含 safetensors)

pip install -e .

pip install timm==0.4.12

这个版本:

  • ✔ 支持 Python 3.7

  • ✔ 不依赖 safetensors

  • ✔ 与 Swin 早期项目兼容$ pip list

    Package Version Editable project location


    addict 2.4.0

    certifi 2022.12.7

    cycler 0.11.0

    flit_core 3.6.0

    fonttools 4.38.0

    importlib-metadata 6.7.0

    kiwisolver 1.4.5

    markdown-it-py 2.2.0

    matplotlib 3.5.3

    mdurl 0.1.2

    mkl-fft 1.3.1

    mkl-random 1.2.2

    mkl-service 2.4.0

    mmcls 0.25.0

    mmcv-full 1.4.0
    mmsegmentation 0.11.0 d:\github\swin-transformer-semantic-segmentation-main

    numpy 1.21.5

    opencv-python 4.12.0.88

    packaging 24.0

    Pillow 9.5.0

    pip 22.3.1

    platformdirs 4.0.0

    prettytable 3.7.0

    Pygments 2.17.2

    pyparsing 3.1.4

    python-dateutil 2.9.0.post0

    PyYAML 6.0

    regex 2024.4.16

    rich 13.8.1

    scipy 1.7.3

    setuptools 65.6.3

    six 1.16.0

    termcolor 2.3.0

    terminaltables 3.1.10

    timm 0.4.12

    tomli 2.0.1

    torch 1.8.0

    torchaudio 0.8.0

    torchvision 0.9.0

    typing_extensions 4.7.1

    wcwidth 0.2.14

    wheel 0.38.4

    wincertstore 0.2

    yapf 0.32.0

    zipp 3.15.0

相关推荐
CP-DD2 小时前
训练可以正常开始 一到 Validation 就直接炸 a PTX JIT compilation failed
python·深度学习·计算机视觉
luoluoal2 小时前
基于python的des知识图谱的百科知识问答平台(源码+文档)
python·mysql·django·毕业设计
算法与编程之美2 小时前
PyTorch中torch.flatten()函数的用法
人工智能·pytorch·python·深度学习·机器学习
余衫马2 小时前
突破语言边界:Python 与 C/C++ 集成方案年度深度总结
c++·python·性能优化·年度技术总结
Justin_JGT2 小时前
flask+uwsgi+Nginx
python·nginx·flask
Biehmltym2 小时前
【AI】02实现AI Agent全栈:十分钟,跑通Python调用 Gemini(大模型)的小型Web项目
人工智能·windows·python
山海青风2 小时前
人工智能基础与应用 - 数据处理、建模与预测流程 1 : 了解人工智能
人工智能·python
技术工小李2 小时前
定制邀请函,助力陕西省第五届食管胃静脉曲张及其伴发疾病研讨会圆满落幕
python
AAA简单玩转程序设计3 小时前
Python 基础再升级!5 个超实用小技巧,写代码快人一步
python