You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Poetry可靠安装setuptools以运行旧版jenkins-job-builder?

问题详情
  • 运行旧版jenkins-job-builder 4.3(无法升级)时触发错误:
    ERROR:stevedore.extension:Could not load '<command>': No module named 'pkg_resources'
    
  • 确认pkg_resources属于setuptools,但在pyproject.toml的[tool.poetry.dependencies]中添加setuptools = "*"后,出现版本解析失败:
    Because <project> depends on setuptools (*) which doesn't match any versions, version solving failed.
    
  • 测试中还碰到版本冲突:jenkins-job-builder 4.3.0的METADATA要求setuptools<=65.7.0,但环境中安装的是69.5.1,报错如下:
    pkg_resources.VersionConflict: (setuptools 69.5.1 (/github/home/.cache/pypoetry/virtualenvs/.../lib/python3.10/site-packages), Requirement.parse('setuptools<=65.7.0'))
    
  • 当前环境:GHA runner,Python 3.12,使用Python 3.10.12安装的Poetry 1.8.2;本地Python 3.10环境可正常运行jenkins-jobs。
解决方法

1. 指定符合限制的setuptools版本

别用*通配符,直接在pyproject.toml的[tool.poetry.dependencies]里添加符合jenkins-job-builder要求的版本范围:

setuptools = "<=65.7.0"

这样Poetry能直接匹配到合规版本,避免解析失败。

2. 锁定具体版本(解析仍有问题时用)

如果Poetry还是搞不定版本解析,直接指定具体版本(比如jenkins-job-builder允许的最高版本65.7.0):

setuptools = "65.7.0"

然后执行poetry lock --no-update生成锁定文件,确保安装时用这个版本。

3. 切换GHA的Python版本到3.10

本地Python 3.10能正常跑,说明这个版本和jenkins-job-builder 4.3兼容性更好。在GHA的Workflow里改成用Python 3.10:

steps:
  - uses: actions/setup-python@v5
    with:
      python-version: '3.10'

同时让Poetry用这个环境:执行poetry env use python3.10指定虚拟环境的Python版本。

4. 手动安装指定版本的setuptools(应急方案)

如果上面的方法都不行,在Poetry安装完依赖后,手动进入虚拟环境安装合规版本:

poetry run pip install setuptools==65.7.0

这个方法能绕过Poetry的版本解析逻辑,直接强制安装符合要求的版本。

5. 检查Poetry配置

确保Poetry的虚拟环境配置正常,执行poetry config --list查看,确认virtualenvs.create设为true,避免用系统Python环境里的冲突版本。

内容的提问来源于stack exchange,提问作者Matthew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 18:12:55