Python 3.10下protobuf与ultralytics库冲突及适配版本咨询
解决protobuf与ultralytics库冲突问题(Python 3.10适配)
问题说明
运行AI类Python代码时出现库冲突报错,具体信息:
cannot import name 'runtime_version' from 'google.protobuf'
(C:\Users\hassan M\AppData\Local\Programs\Python\Python310\lib\site-packages\google\protobuf_init_.py)
该问题源于protobuf版本与ultralytics依赖的版本不兼容,runtime_version属性仅在特定版本的protobuf中存在。
解决方案
方案1:直接调整protobuf版本
- 卸载当前冲突的protobuf版本:
pip uninstall -y protobuf - 安装适配Python 3.10和ultralytics的指定版本:
pip install protobuf==3.21.12
方案2:使用虚拟环境隔离依赖(推荐)
避免全局环境库版本混乱,创建独立虚拟环境:
- 创建虚拟环境:
python -m venv ultralytics_env - 激活虚拟环境:
- Windows系统:
ultralytics_env\Scripts\activate - Linux/macOS系统:
source ultralytics_env/bin/activate
- Windows系统:
- 安装ultralytics,它会自动拉取适配的所有依赖(包括protobuf):
pip install ultralytics==8.0.200
Python 3.10适配的库版本建议
- protobuf:推荐使用3.20.0 ~ 3.21.12区间内的版本,该区间版本既兼容Python 3.10,又能满足ultralytics的依赖要求
- ultralytics:推荐使用8.0.200及以上的8.x稳定版,这类版本对Python 3.10支持完善,且依赖管理更规范
内容的提问来源于stack exchange,提问作者Rania Arcelan




