6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Django】herokuデプロイ時に遭遇したエラー その①

Last updated at Posted at 2020-08-31

何があったか?

Djangoで作成したWebアプリをherokuでデプロイするため

$ git push heroku master

を実行したところ、以下のエラーが発生した。

"""中略"""

remote: 
To https://git.heroku.com/hogehoge.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/hogehoge.git'

原因は?

急いでいる人向けに結論から書きます。

Procfile、runtime.txt、requirements.txtを作成していませんでした。

慣れている人からすれば「そんな事ある?」って話でしょうが、あります(泣)
なんなら設置場所を間違えて二重に詰まっていました。

なぜエラーになるのか

それぞれのファイルの役割と作成方法を説明します。

Procfile

役割 : 使用するサーバーをherokuに知らせる
場所 : プロジェクトルート(manage.pyがあるところ)に設置する
内容 : 以下のように記述

web: gunicorn プロジェクト名.wsgi --log-file -

gunicornを使いますよ、という意味
Procfileには拡張子がないので注意!

runtime.txt

役割 : Pythonのバージョンをherokuに知らせる
場所 : プロジェクトルート(manage.pyがあるところ)に設置する
内容 : 以下のように記述

runtime.txt
python-3.8.5 (3.8.5には自分が使用しているpythonバージョンを記述する)

requirements.txt

役割 : 使用しているライブラリをherokuに知らせる
場所 : プロジェクトルート(manage.pyがあるところ)に設置する
内容 : Procfileとruntime.txtは手動で作成する必要がありますが、requirements.txtはターミナルで以下を実行します。

$ cd プロジェクトルートディレクトリ    # プロジェクトルートディレクトリ内で実行すること

$ pip freeze > requirements.txt

これだけでOK。以下の例のようにライブラリ一覧が書かれたテキストファイルができていることを確認する。

requirements.txt
"""
これは例なので実際は自分が使用しているライブラリが一覧で書かれます。
"""

appnope==0.1.0
asgiref==3.2.10
backcall==0.2.0
beautifulsoup4==4.9.1
certifi==2020.6.20
chardet==3.0.4
click==7.1.2
coverage==5.2.1
cssselect==1.1.0
decorator==4.4.2
dj-database-url==0.5.0
Django==3.1
.
.
.

"""以下略"""

注意点

上記3ファイルは設置していないのはもちろん、ファイル名や内容にミスがあってもエラーとなるのでよく確認しましょう。

参考

参考にさせていただいたサイト
Djangoで作る初めてのウェブアプリケーション(番外編)herokuデプロイ

同じ状況の人に参考になるかもしれないサイト
【git】git pushがrejectされたときの対応方法

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?