Django项目部署到Heroku时报命令退出状态1错误如何解决
报错根因
构建失败的直接原因是依赖包pywinpty编译失败,从日志可以看到该包编译需要Rust工具链,而Heroku默认Python构建环境未预装该工具链。更深层的原因是pywinpty是仅适用于Windows平台的终端控制库,在Heroku使用的Linux运行环境中完全不需要该依赖,它是在Windows本地开发时执行pip freeze导出依赖清单时被误加入requirements.txt的。
修复步骤
- 打开项目根目录下的
requirements.txt文件,找到pywinpty==1.1.1所在行,直接删除该行即可。
如果需要兼顾本地Windows开发和线上Linux部署,也可以将该行修改为带平台限定的格式:pywinpty==1.1.1; sys_platform == 'win32'
这样pip会自动判断运行平台,仅在Windows环境下安装该包。 - 可选优化:你的依赖清单中还包含
pgadmin4这类仅开发环境需要的数据库管理工具,正式线上部署不需要使用,也可以一并删除,减少构建体积和不必要的依赖冲突风险。 - 提交修改后的
requirements.txt到代码仓库,重新执行git push heroku main(对应你的实际分支名)即可正常完成构建部署。
内容的提问来源于stack exchange,提问作者Ritankar Bhattacharjee
相关产品推荐
相关产品推荐

