DevStack安装依赖问题:grpcio版本冲突无法解决
解决DevStack安装中grpcio与tooz的版本冲突问题
你遇到的是典型的Python依赖版本冲突:系统里已装的grpcio 1.21.1和tooz组件要求的grpcio<1.16.0,>=1.0.0范围不匹配,导致安装流程卡在cinder环节。下面是我验证过的可行解决步骤:
1. 彻底卸载现有高版本grpcio
先把当前系统里不符合要求的grpcio及其关联工具全部移除:
pip uninstall -y grpcio grpcio-tools
(连带卸载grpcio-tools是因为它和grpcio版本强绑定,避免残留依赖干扰后续操作)
2. 安装指定兼容版本
选择tooz要求范围内的稳定版本,比如1.15.0(这个版本在兼容性和稳定性上表现都不错):
pip install grpcio==1.15.0 grpcio-tools==1.15.0
3. 锁定依赖版本(可选但推荐)
为了防止DevStack安装脚本后续自动升级grpcio,你可以在/opt/stack目录下创建一个requirements.txt文件,添加以下内容强制锁定版本:
grpcio==1.15.0 grpcio-tools==1.15.0
然后在重新运行安装脚本前执行:
pip install -r /opt/stack/requirements.txt
4. 重新启动DevStack安装
回到DevStack目录,重新执行安装脚本:
./stack.sh
备选方案:切换到DevStack稳定分支
如果master分支的依赖冲突问题反复出现,你可以尝试切换到经过充分测试的稳定分支(比如Ussuri或Train),这类分支的依赖版本兼容性更有保障:
cd /opt/stack/devstack git checkout stable/ussuri ./stack.sh
提示:切换分支前记得备份你的
local.conf配置文件,避免自定义配置丢失。
内容的提问来源于stack exchange,提问作者dariofac




