Mademewhole 2026-02-06 18:27 采纳率: 42.9%
浏览 1

配置mmdetection出错

ModuleNotFoundError: No module named 'mmcv._ext'
我的环境为
torch 2.4.1
torchaudio 2.4.1+cu121
torchvision 0.19.1
下载的支持包版本为
mmcv 2.1.0
mmdet 3.3.0
mmengine 0.10.7
一直换版本都报错

  • 写回答

1条回答 默认 最新

  • 檀越@新空间 2026-02-06 18:28
    关注

    晚上好🌙🌙🌙
    本答案参考通义千问

    你遇到的错误是:

    ModuleNotFoundError: No module named 'mmcv._ext'
    

    这个错误通常表示 mmcv 没有正确安装,或者 你安装的 mmcv 版本与你的环境不兼容。根据你提供的信息,你的环境为:

    • PyTorch 2.4.1
    • TorchAudio 2.4.1+cu121
    • torchvision 0.19.1
    • mmcv 2.1.0
    • mmdet 3.3.0
    • mmengine 0.10.7

    原因分析

    1. mmcv 没有正确安装

      • mmcv 是一个依赖项,它包含 C++ 扩展(如 _ext),如果你使用的是 pip 安装而不是源码编译,可能会导致扩展没有被正确安装。
    2. 版本不兼容

      • 你使用的 mmcvmmdet 的版本可能不兼容,尤其是在 PyTorch 2.x 环境中。
    3. CUDA 版本不匹配

      • 你使用的是 cu121(CUDA 12.1),但某些 mmcv 版本可能只支持特定的 CUDA 版本(如 cu118)。

    🔧 解决方案

    1. 卸载现有 mmcv 并重新安装

    pip uninstall mmcv -y
    

    然后使用官方推荐的方式安装 mmcv,确保与你的 PyTorch 版本和 CUDA 版本兼容。

    📌 推荐方式:通过 mmcv-full 安装

    pip install mmcv-full==2.1.0 -f https://download.openmmlab.com/mmcv/dist/2.1.0/torch2.4.1_cu121/index.html
    

    如果你不确定哪个版本适合你,可以访问 MMCV 官方下载页面 查看对应版本。


    2. 确认 PyTorch 和 CUDA 版本是否匹配

    你使用的是 PyTorch 2.4.1 + cu121(CUDA 12.1)。建议你检查一下是否真的支持该组合:

    import torch
    print(torch.__version__)        # 应该是 2.4.1
    print(torch.version.cuda)       # 应该是 12.1
    print(torch.backends.cudnn.version())  # 检查 cudnn 是否可用
    

    如果发现不匹配,可以考虑更换 PyTorch 或者 CUDA 版本。


    3. 升级或降级 mmdet 和 mmengine

    你可以尝试以下版本组合,以确保兼容性:

    • mmdet 3.3.0
    • mmengine 0.10.7
    • mmcv 2.1.0

    但建议你查看 MMDetection GitHub 页面 上的 Requirements 部分,选择与你 PyTorch 版本对应的版本。


    4. 手动安装 mmcv 源码(可选)

    如果你仍然无法通过 pip 安装成功,可以尝试从源码编译:

    git clone https://github.com/open-mmlab/mmcv.git
    cd mmcv
    pip install -e .
    

    注意:这需要你已经安装了 torchtorchvisionsetuptoolsnumpy 等依赖。


    5. 验证安装是否成功

    运行以下代码测试是否能正常导入:

    import mmcv
    print(mmcv.__version__)
    print(mmcv._ext)
    

    如果没有报错,则说明安装成功。


    总结步骤(有序列表)

    1. 卸载现有的 mmcv

      pip uninstall mmcv -y
      
    2. 使用官方链接安装 mmcv-full

      pip install mmcv-full==2.1.0 -f https://download.openmmlab.com/mmcv/dist/2.1.0/torch2.4.1_cu121/index.html
      
    3. 检查 PyTorch 和 CUDA 版本是否匹配

      import torch
      print(torch.__version__)
      print(torch.version.cuda)
      
    4. 验证 mmcv 是否安装成功

      import mmcv
      print(mmcv.__version__)
      print(mmcv._ext)
      
    5. 如果仍失败,尝试从源码安装 mmcv

      git clone https://github.com/open-mmlab/mmcv.git
      cd mmcv
      pip install -e .
      

    💡 额外提示

    • 如果你在使用 Colab 或 Jupyter Notebook,请确保每次重启内核后都重新安装依赖。
    • 如果你使用的是 Conda 环境,建议使用 conda install -c conda-forge mmcv 来避免版本冲突。

    如果你仍然无法解决,请提供完整的错误日志或输出结果,我可以进一步帮你定位问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月6日