Poetry 1.1.9在GitHub Actions运行CI/CD时poetry install失败如何解决
问题根因
你遇到的报错和Poetry版本无关,核心原因是依赖的ibm_db==3.0.4版本使用了已被废弃的use_2to3构建参数,而setuptools v58.0.0及以上版本正式移除了对use_2to3的支持,导致构建失败。
解决方案
方案1:升级ibm_db版本(最推荐)
ibm_db从v3.1.0版本开始已经修复了该兼容问题,你只需在pyproject.toml中将ibm_db的版本约束调整为>=3.1.0,之后在本地执行:
poetry update ibm_db
将新生成的poetry.lock文件提交到仓库即可解决CI报错问题。
方案2:降级setuptools版本(适用于无法升级ibm_db的场景)
如果业务依赖限制不能升级ibm_db版本,你可以通过强制使用低版本setuptools解决兼容问题,有两种实现方式:
- 方式一:修改GitHub Actions配置,在安装依赖前先降级setuptools,调整后的CI步骤如下:
jobs: execute-linters: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Python 3.9 uses: actions/setup-python@v2 with: python-version: 3.9 - name: Poetry uses: Gr1N/setup-poetry@v7 - name: Downgrade setuptools for ibm_db compatibility run: poetry run pip install "setuptools<58.0.0" - name: Dependencies run: poetry install
- 方式二:直接在
pyproject.toml中添加setuptools的版本约束:
setuptools = "<58.0.0"
之后重新生成poetry.lock提交即可。
额外说明
你之前遇到的锁文件过期警告,只要更新后重新提交锁文件就可以解决,和本次安装失败没有直接关联。
内容的提问来源于stack exchange,提问作者Henrique Branco
相关产品推荐
相关产品推荐

