Poetry安装特定依赖遇版本冲突的最优解决方法
依赖版本冲突的最优解决方法
问题背景
使用Python 3.12环境,项目pyproject.toml配置如下:
[tool.poetry.dependencies] python = "^3.12" omegaconf = { version = "2.3.0", source = "pypi-acme" } azure-cli = { version = "2.72.0", source = "pypi-acme" }
执行安装命令:
poetry config virtualenvs.create false \ && rm -rf ~/.cache/pypoetry \ && poetry install --no-interaction --no-root
出现依赖冲突错误:
Because azure-cli (2.72.0) depends on antlr4-python3-runtime (>=4.13.1,<4.14.0) and omegaconf (2.3.0) depends on antlr4-python3-runtime (==4.9.*), azure-cli (2.72.0) is incompatible with omegaconf (2.3.0). So, because acme-dev depends on both omegaconf (2.3.0) and azure-cli (2.72.0), version solving failed.
最优解决方法
升级omegaconf到2.4.0及以上版本。
原因
omegaconf 2.3.0对antlr4-python3-runtime的依赖被严格限制为==4.9.*,而azure-cli 2.72.0要求该依赖版本在>=4.13.1,<4.14.0区间,二者无法兼容。从omegaconf 2.4.0开始,其对antlr4-python3-runtime的依赖范围放宽为>=4.9,<4.15,完全覆盖azure-cli所需的版本区间,可解决冲突。
操作步骤
- 修改
pyproject.toml中的omegaconf版本:
[tool.poetry.dependencies] python = "^3.12" omegaconf = { version = "^2.4.0", source = "pypi-acme" } azure-cli = { version = "2.72.0", source = "pypi-acme" }
- 重新执行原安装命令即可完成依赖安装。
其他可选方案(非最优)
- 降级azure-cli到依赖
antlr4-python3-runtime==4.9.*的旧版本,但会丢失azure-cli的新功能与安全更新,不推荐。
内容的提问来源于stack exchange,提问作者Hare Krshn
相关产品推荐
相关产品推荐

