Heroku推送Django/PWA项目时requirements.txt路径报错如何解决?
问题原因
你是在Windows环境下生成的依赖文件,首先你修改后的requirements.txt大概率没有正确提交到Git,另外文件里包含Windows平台专属的依赖包,同时缺失了显式的argon2-cffi依赖声明,导致pip安装时仍读取本地缓存的Windows构建路径。
解决步骤
- 第一步:确认requirements.txt修改已提交到Git
运行git status查看是否有requirements.txt的未提交修改,如有则依次执行:git add requirements.txt git commit -m "更新依赖适配Heroku部署" - 第二步:清理Windows专属依赖
删掉requirements.txt里的以下两行内容,这两个包仅在Windows环境下需要,Heroku的Linux环境无需安装:win-inet-pton wincertstore==0.2 - 第三步:显式声明argon2-cffi依赖
在requirements.txt中新增一行,指定argon2-cffi的版本(你可以在本地运行pip show argon2-cffi查看你本地使用的版本,替换下方的版本号即可):
主动声明依赖后,pip会直接从PyPI拉取对应版本的包,不会再读取本地的构建路径。argon2-cffi==21.3.0 - 第四步:可选优化(避免后续依赖问题)
如果执行完以上步骤仍有问题,可以放弃直接使用pip freeze导出的全量依赖,只保留你项目实际用到的顶层依赖即可,其余间接依赖pip会自动安装兼容版本:Django==2.1.5 django-crispy-forms==1.13.0 django-pwa==1.0.10 Pillow requests pytz==2021.3 - 第五步:解决重复构建提示
如果推送时仍提示重复构建,根据你本地的开发分支名调整推送命令即可,假设你本地开发分支为dev,命令为:
如果你本地用的是main分支,直接运行git push heroku dev:maingit push heroku main:main即可。
内容的提问来源于stack exchange,提问作者catBuddy
相关产品推荐
相关产品推荐

