我正在尝试将一个大型Django项目部署到heroku。我安装了Heroku CLI,登录,创建了一个应用程序并运行:
git push heroku master
我已经设置了一个Pipfile和requirements.txt。我添加了runtime.txt以指定需要python 2.7。这也在Pipfile中。这是我从推送到heroku得到的结果:
$ git push heroku master Counting objects: 12159, done. Delta compression using up to 2 threads. Compressing objects: 100% (4853/4853), done. Writing objects: 100% (12159/12159), 20.94 MiB | 1.82 MiB/s, done. Total 12159 (delta 6859), reused 12036 (delta 6751) remote: Compressing source files... done. remote: Building source: remote: remote: -----> Python app detected remote: -----> Installing python-3.6.4 remote: -----> Installing pip remote: -----> Installing dependencies with Pipenv 11.8.2… remote: Your Pipfile.lock (3b2ba9) is out of date. Expected: (83a5b4). remote: Aborting deploy. remote: ! Push rejected, failed to compile Python app. remote: remote: ! Push failed remote: Verifying deploy.... remote: remote: ! Push rejected to camp-infinity. remote: To https://git.heroku.com/camp-infinity.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'https://git.heroku.com/camp-infinity.git'
由于某种原因,它尝试安装python 3,而且它也不喜欢我的Pipfile.lock文件。我试着删除它,并使用pipenv install再次生成它,但是没有任何改变。
在处理项目时遇到了相同的问题,在你推送到Heroku的分支中,运行
pipenv lock
它将更新Pipfile.lock文件。