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

Heroku部署Python应用推送被拒编译失败,该如何解决?

错误产生原因

该问题不是单纯Python层面的问题,核心诱因是运行环境差异,具体如下:

  • pywin32是Windows平台专属的Python库,仅提供Windows系统适配的安装包,没有适配Linux/macOS环境的发行版本
  • Heroku的容器运行环境是Linux系统,无法找到对应平台的pywin32安装包,因此抛出找不到匹配分发版本的报错
  • 附加问题说明:
    • 你贴出的requirements.txt里标注的是pywin32==301,但日志报错是找不到pywin32==300,说明你提交到Heroku的requirements.txt版本和你本地当前的版本不一致,提交前需要确认内容同步
    • requirements.txt还存在两个额外错误:gunicorn==20.1.0o版本号多写了字母o,setuptools==0.7.3版本过于老旧,会导致现代依赖包安装失败
    • 同时存在的pypiwin32也是Windows平台专属依赖,同样无法在Heroku环境安装
可行解决方案
  1. 移除或限定Windows专属依赖的安装环境
    • 如果业务代码在服务端运行时不需要用到pywin32、pypiwin32的相关能力,直接删除requirements.txt中的以下两行:
      pypiwin32==223
      pywin32==301
      
    • 如果本地Windows开发环境需要用到这两个依赖,可通过平台标记限定仅Windows环境安装,修改写法如下:
      pywin32==301; platform_system == "Windows"
      pypiwin32==223; platform_system == "Windows"
      
  2. 修正错误的依赖配置
    • 将gunicorn==20.1.0o修改为gunicorn==20.1.0
    • 将setuptools==0.7.3升级为setuptools>=60.0.0
  3. 冗余依赖清理(可选,根据业务实际情况选择)
    Heroku是无图形界面的服务端运行环境,如果你部署的是Django服务端应用,不需要GUI相关能力,可删除Kivy、kivy-deps.angle、kivy-deps.glew、kivy-deps.sdl2、Kivy-Garden这些GUI类依赖,避免后续出现其他环境兼容问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:09:02