こんにちは。
PythonのFraskをHerokuでデプロイしてみましたが、初心者の私は15時間くらいかかりました。
学習メモを以下に記載します。誰かの役に立つことを願って。
環境
Ubuntu(Windows10)
Python3.7.4
デプロイするコード
下記のコードをデプロイします。
Helloと出力するだけの簡単なコードです。
from flask import Flask
app = Flask(__name__)
@app.route(‘/’)def index(): return ‘Hello’
if __name__ == ‘__main__’: app.run()
手順
Herokuにログイン
heroku login
Herokuでcreate
heroku create
Heroku Clone
heroku git:clone -a アプリ名
※アプリ名には、httpや.gitは含めない。
以下の警告がでる
warning: You appear to have cloned an empty repository.
venvで仮想環境を作る
python -m venv 名前
または
python3 -m venv –without-pip 名前
※withoutの前の-は二つ –
表示の問題で-一つになっている場合あり
※pipのインストールが必要
仮想環境に入る
source 名前/bin/activate
(名前)*****と表示されるようになる
pipをインストールする
(名前) $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
(名前) $ python3 get-pip.py
flaskとgunicornをinstallする
flaskのインストール
pip3 install flask
よくわかってないが、pipの後に3が必要になる
gunicornのインストール
pip3 install gunicorn
Herokuのデプロイで必要なファイル
runtime.txt
requirements.txt
Procfile
runtime.txt
python-3.7.4
requirements.txt
pip3 freeze > requirements.txt
で自動生成されます
Procfile
拡張子はなしのファイルです
web: gunicorn 実行するファイル名:app –log-file=-
を記載します。※実行するファイル名に拡張子はいりません。
gitへコミット
git add .
git commit -m “***”
git remote add origin https://github.com/***.git
buildpacksの指定
heroku buildpacks:set heroku/python
Herokuへデプロイ
git push heroku master
成功すれば以下が表示されます。
remote: Verifying deploy… done.
To https://git.heroku.com/アプリ名 * [new branch] master -> master
ハマったこと
Herokuでデプロイするには、runtime.txtとかのファイルの用意、あとフォルダ構成も決まりがあることを知らなかった。
仮想環境を作る必要があった。pythonやfraskなど実行に必要なファイルは全てgitにupする必要があり、仮想環境を作らないとRequirements.txtに全ての設定ファイルが記載され、不要なファイルもgitにupする必要がある。
pipをインストールしないと、fraskがインストールできず、実行できない。
Buildpacksの指定をしないとエラーがでる
clonseを作成する必要がある。※意味がよくわかってないのでこれから勉強する
便利コマンド
git remote -v:紐づいているgitとherokuを確認できる
git remote rm heroku:紐づいているheroku アプリの切り離し
git remote rm origin:紐づいているgit の切り離し
git remote add heroku http *****.git:herokuの紐づけ
git remote add origin http *****.git:gitの紐づけ
コメント