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

Github运行Python Tox action因use_2to3错误执行失败如何解决?

问题根因
  • 核心矛盾是python-pushsafer==0.4的setup.py中硬编码了已废弃的use_2to3参数,setuptools v58及以上版本彻底移除了对use_2to3参数的支持,只要用v58+的setuptools构建这个包就会触发报错。
  • 你虽然在依赖文件中指定了setuptools==57.4.0,但pip的依赖处理逻辑是先对所有待安装包执行构建前的egg_info校验,再统一安装依赖。校验python-pushsafer时用的是虚拟环境初始化时默认的高版本setuptools,还没等到你指定的低版本setuptools安装,就已经触发了报错。
  • 之所以之前运行正常,是因为数月前GitHub Action的默认运行环境中setuptools版本低于58,近期环境更新后默认setuptools版本升级,才导致故障出现。
解决方案

按长期实用性优先级排序可选方案如下:

  • 方案1(长期推荐):替换过时依赖
    python-pushsafer 0.4已经多年未更新维护,你可以直接调用pushsafer的公开API实现推送功能,仅需几十行代码即可完成替代,彻底规避老包的兼容问题。
  • 方案2(无需改业务代码,调整构建顺序)
    修改你的tox.ini配置,在安装普通依赖前先降级setuptools版本,只需要在[testenv]块中加入pre_install配置即可:
    [testenv]
    pre_install =
        pip install setuptools==57.4.0
    
    该配置会让tox在安装其他依赖前先把setuptools降到指定版本,后续构建python-pushsafer时就会用低版本setuptools,不会触发报错。
  • 方案3(临时兼容):fork依赖包自行修复
    你可以forkpython-pushsafer的代码仓库,删除setup.py中的use_2to3相关配置,再把依赖指向你修复后的仓库地址即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:27:02