在macOS上安装MMSegmentation时遇到兼容性问题
macOS CPU版MMSegmentation兼容问题解决方案
问题根源
你遇到的__ZN3c106detail19maybe_wrap_dim_slowIxEET_S2_S2_b符号缺失错误,本质是MMCV预编译包与PyTorch、Python版本不匹配:从错误路径可见你创建的是Python3.8环境,但实际运行环境为Python3.9,版本错位加上预编译包ABI不兼容导致了该问题。
修复步骤
1. 清理原有环境
先彻底删除有问题的conda环境:
conda deactivate conda remove --name openmmlab --all -y
2. 创建匹配版本的Python环境
直接创建Python3.9环境(与错误路径中的版本一致,避免错位):
conda create --name openmmlab python=3.9 -y conda activate openmmlab
3. 安装兼容的PyTorch 2.1.x版本
用conda安装CPU版PyTorch,确保与MMCV 2.1.0的ABI完全匹配:
conda install pytorch==2.1.0 torchvision torchaudio cpuonly -c pytorch
4. 重新安装MMEngine与MMCV
先安装openmim和MMEngine:
pip install -U openmim mim install mmengine
然后安装针对PyTorch2.1 + Python3.9 + macOS CPU的MMCV 2.1.0预编译包:
pip install mmcv==2.1.0 -f https://download.openmmlab.com/mmcv/dist/cpu/torch2.1/index.html
执行前用
which pip检查,确保pip路径指向当前conda环境(如/opt/anaconda3/envs/openmmlab/bin/pip),避免调用系统pip引发版本混乱。
5. 安装MMSegmentation
pip install "mmsegmentation>=1.0.0"
6. 验证与测试
先运行以下代码验证基础导入是否正常:
import torch import mmcv from mmseg.apis import inference_model, init_model
无报错后,推荐用mim自动下载匹配的配置与权重文件(避免手动下载版本不兼容):
mim download mmsegmentation --config pspnet_r50-d8_4xb2-40k_cityscapes-512x1024 --dest .
再运行推理代码即可。
额外注意事项
- 不要混用conda和pip安装PyTorch,优先用conda安装PyTorch以避免依赖冲突。
- 所有安装操作必须在激活的conda环境内执行,确保依赖包都安装在目标环境中。
内容的提问来源于stack exchange,提问作者Silor
相关产品推荐
相关产品推荐

