You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下运行Python脚本报错:No module named 'mmcv._ext'求解决

问题描述

运行.dev_scripts/check_installation.py时触发ModuleNotFoundError: No module named 'mmcv._ext',设备为MacBook,已尝试相关方案但无效。

错误日志:

python .dev_scripts/check_installation.py
Traceback (most recent call last):
  File "/Users/user/Downloads/mmcv-2.x/.dev_scripts/check_installation.py", line 4, in <module>
    from mmcv.ops import box_iou_rotated
  File "/Users/user/Desktop/Progetti/project/Source/project/.venv/lib/python3.9/site-packages/mmcv/ops/__init__.py", line 2, in <module>
    from .active_rotated_filter import active_rotated_filter
  File "/Users/user/Desktop/Progetti/project/Source/project/.venv/lib/python3.9/site-packages/mmcv/ops/active_rotated_filter.py", line 10, in <module>
    ext_module = ext_loader.load_ext(
  File "/Users/user/Desktop/Progetti/project/Source/project/.venv/lib/python3.9/site-packages/mmcv/utils/ext_loader.py", line 13, in load_ext
    ext = importlib.import_module('mmcv.' + name)
  File "/Users/user/.pyenv/versions/3.9.18/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'mmcv._ext'
针对MacBook的可行解决方案

1. 安装带编译扩展的MMCV版本

MMCV分为纯Python版mmcv和带扩展的mmcv-full,必须安装mmcv-full才能加载mmcv._ext模块:

# 先卸载现有版本
pip uninstall -y mmcv mmcv-full
# 根据PyTorch版本安装对应预编译包,示例针对PyTorch 2.0+、Python 3.9的MacOS版本
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cpu/torch2.0/index.html

注意:M系列芯片Mac需使用原生arm64架构的Python环境,避免Rosetta转译的x86环境,否则编译扩展会失败。

2. 检查编译依赖

Mac编译MMCV扩展需要基础工具链:

# 安装Xcode命令行工具
xcode-select --install
# 安装cmake(若缺少)
brew install cmake
# 配置编译环境变量
export CC=clang
export CXX=clang++

重新安装mmcv-full,确保安装过程中无编译报错。

3. 验证虚拟环境一致性

确认运行脚本的虚拟环境与安装MMCV的环境一致:

# 查看当前Python路径
which python

若路径不匹配,切换到正确的虚拟环境后重新安装MMCV。

4. 本地编译MMCV(预编译包不兼容时)

如果预编译包适配性差,可手动编译:

# 克隆对应版本分支
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
git checkout 2.x
# 安装依赖
pip install -r requirements.txt
# 编译并安装带扩展的版本
MMCV_WITH_OPS=1 pip install -e .

注意:M系列芯片需确保所有依赖均为arm64版本,避免混合架构导致编译失败。

内容的提问来源于stack exchange,提问作者Pasquale Celardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 13:10:07