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

Django应用部署Heroku时报pywin32>=223依赖缺失错误如何解决

问题根因
  • pywin32/pypiwin32是Windows平台专属依赖包,Heroku运行环境为Linux,PyPI源没有对应Linux发行版,只要依赖链条中存在该包的安装要求就会推送失败
  • 修改requirements.txt后仍报错,通常是存在未同步修改的其他依赖声明文件,或是有第三方依赖隐性声明了对pywin32的要求
解决步骤
  1. 清理冗余依赖声明文件
    如果你使用过pipenv、poetry等包管理工具,先检查项目根目录是否存在Pipfile、Pipfile.lock、pyproject.toml、poetry.lock文件:
    • 若不需要使用这些工具管理依赖,直接删除上述文件,Heroku会优先读取此类文件而非requirements.txt
    • 若需要保留,手动删除上述文件中所有pywin32、pypiwin32相关条目
      执行git add . && git commit -m "clean win32 deps"提交所有变更到本地Git仓库
  2. 处理隐性依赖
    • 本地执行pip show pywin32查看Requires和Required-by字段,定位是哪些包依赖了pywin32
    • 对Windows专属的可选依赖,在requirements.txt中添加平台限制标记,写法如下:
      pywin32>=223; sys_platform == 'win32'
      
      该标记会让包管理工具仅在Windows环境下安装该依赖,Linux环境自动跳过
  3. 清理Heroku构建缓存
    执行命令heroku builds:cache:purge -a 替换为你的Heroku应用名称清理历史构建缓存,避免旧的依赖缓存干扰新的构建
  4. 重新生成依赖清单
    不要直接使用pip freeze > requirements.txt导出全量本地依赖,容易混入大量Windows专属的无关依赖,建议手动整理requirements.txt,仅保留项目实际用到的生产依赖(如Django、gunicorn、django相关插件等)
  5. 重新推送部署
    完成上述操作后,再执行git push heroku master重新推送即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:06:04