需要导入的依赖
pip install torch==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -U openmim -i https://pypi.tuna.tsinghua.edu.cn/simple
mim install mmdet
pip install --upgrade label-studio-sdk -i https://pypi.tuna.tsinghua.edu.cn/simple
python -m pip install -U pydantic spacy -i https://pypi.tuna.tsinghua.edu.cn/simple
问题
-
- TypeError: issubclass() arg 1 must be a class
-
- 找不到 pydantic 中的 field_serializer
-
- ModuleNotFoundError: No module named ‘mmcv._ext‘
-
- ImportError: DLL load failed while importing _ext: 找不到指定的模块
解决办法
- 问题1,2都是由于pydantic的兼容问题导致的, 使用的正确的包即可:
python -m pip install -U pydantic spacy -i https://pypi.tuna.tsinghua.edu.cn/simple
,版本是2.8.2
- 问题3,4都是mmcv 和 torch兼容的问题, mmcv和torch都用2.1.0, mmdet用的3.3.0, 命令:
pip install torch==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install -U openmim -i https://pypi.tuna.tsinghua.edu.cn/simple mim install mmdet
其他注意事项
-
mmcv需要使用2.2.0以下的版本(日志里面会显示mmcv的版本范围 ),导致torch需要使用对应的版本,否则也会不兼容, 可以通过https://download.openmmlab.com/mmcv/dist/cpu/torch2.1.0/index.html 查看版本对应信息,改变url上的对应的版本, 会显示出适用的mmcv版本, 我这里使用的torch是2.1.0
-
通过以下命令, 会自动安装对应的mmcv版本
pip install -U openmim -i https://pypi.tuna.tsinghua.edu.cn/simple
mim install mmdet
总结
在使用过程中解决依赖包冲突的问题花费的时间很长,并且在网上搜索的关于mmdection 依赖问题的信息太零散了, 这里做个总结, 我这边就是按照开头的顺序依次install解决的。