大規模なDjango=プロジェクトをherokuにデプロイしようとしています。HerokuCLIをインストールし、ログインし、アプリを作成して実行しました。
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ファイルが更新されます。 :)
Pipfile.lock
を削除し、削除をコミットしました。 Herokuのビルドプロセスでは、Herokuが存在しないという不満がありましたが、正常にデプロイされました...
-----> Python app detected
! No 'Pipfile.lock' found! We recommend you commit this into your repository.
-----> Installing pip
-----> Installing dependencies with Pipenv 11.8.2…
Installing dependencies from Pipfile…
-----> Discovering process types
Procfile declares types -> worker
-----> Compressing...
Done: 189.9M
-----> Launching...
Released v5
私も同じ問題を抱えていましたが、それはPipfile.lockを指すシンボリックリンクが原因でした。
ローカルMac OS環境でリポジトリを複製した後、何らかの理由で元のリンクが壊れていたため、HerokuにプッシュするとYour Pipfile.lock (3b2ba9) is out of date. Expected: (83a5b4)
になりました。
「古い」シンボリックリンクを削除し、ローカルenvから再作成するだけで問題が解決しました。
次のいずれかを提供する必要があります。
Pipfile
および対応するPipfile.lock
または
requirements.txt
(およびオプションでruntime.txt
)Pipfile
を使用している場合は、git rm requirements.txt runtime.txt
そしてgit add Pipfile Pipfile.lock
。 git commit
そしてgit Push
herokuへ。
Pipenvの更新:pip install pipenv --upgrade
その後:pipenv lock
その後、コミットします
私のためにこれを修正しました
Heroku CLIを使用して、git Push heroku master
この正確なエラーが発生したとき、master
ではないローカルブランチから:
remote: -----> Python app detected
remote: -----> Installing pip
remote: -----> Installing dependencies with Pipenv 2018.5.18…
remote: Your Pipfile.lock (38bf21) is out of date. Expected: (e4987e).
remote: Aborting deploy.
remote: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
remote: Verifying deploy...
master
ブランチからデプロイすると修正されました。
master
以外のローカルブランチをHerokuマスターにプッシュする場合は、git Push heroku branchname:master
。