/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol

在运行MMDetection的Demo时遇到ImportError,问题根源是mmcv的版本与PyTorch不匹配。通过检查CUDA环境并尝试不同版本的mmcv_full进行安装,最终发现1.3.7版本与现有环境兼容。建议在新建mmdetection环境时,遵循官方文档并确保所有包的版本协调,以避免类似问题。

mmdetection的Demo,碰见这个错误:

ImportError: XX/python3.7/site-packages/mmcv/_ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol: 
_ZTIN3c1021AutogradMetaInterfaceE

参考github issue:
https://github.com/open-mmlab/mmdetection/issues/4291

查看FAQ:
https://mmdetection.readthedocs.io/en/latest/faq.html#pytorch-cuda-environment

我确定我的CUDA环境没问题,于是我猜也许是mmcv的版本和Pytorch等包的版本不匹配
在这里插入图片描述
索性重安装一下:

pip uninstall mmcv-full # (没这个的话, 试试 `pip uninstall mmcv`)

然后根据你的CUDA和PyTorch版本,我的是 CUDA10.2Torch1.6.0
则从这个网站下:
https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html

若你是CUDA11.0,那么网站就是:
https://download.openmmlab.com/mmcv/dist/cu110/torch1.6.0/index.html

在这里插入图片描述
一般根据你的Python版本,选择一个最新版的 mmcv_full 就行,下载下来之后,手动安装一下:
比如你下载的:
mmcv_full-1.3.9-cp38-cp38-manylinux1_x86_64.whl

于是:

pip install mmcv_full-1.3.9-cp38-cp38-manylinux1_x86_64.whl

但是一跑,发现版本不兼容,于是选择版本符合的 1.3.7
在这里插入图片描述
下载1.3.7之后,运行

pip install mmcv_full-1.3.7-cp38-cp38-manylinux1_x86_64.whl

这次就OK了


总结一下,

  1. 主要还是没认真看mmdetection的安装文档造成的问题
  2. 新建mmdetection一般不要clone已有的环境,版本问题比较难受,直接新建比较快(多次建环境经验之谈,不一定对)
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值