いろいろなWEBの記事や投稿動画をいくら読んでも、成功しなかった、「Flask アプリのPythonanywhereへのデプロイ」がChatGPT4.0の助けで成功したので、簡単に報告します。ブログラミング技術のないぼくでもできたので、このこと自体が報告価値があると思います(なによりとても嬉しかった)。
(1)短いFlaskファイルは手動でPythonanywhereにアップロードすれば、容易。
初期画面のCreate a new siteでスタート直後、メインファイル名を、デフォルトのflask_app.pyのままにするなら、アップロードしたファイル名をかきかえればよい。あるいは、最初の手順で、例 app.py としてしまってもいい。
(2)大きなファイルは、大変でしたが、ChatGPT4.0にしつこく質問していけば、ぼくでもできました。
要点は、
1. /home/(pythonanywhereのユーザー名)/(haikusns:今回アプリのフォルダ)/(app.py:今回アプリの中心のファイル) の構造を保持する。具体的には、ファイル群push後、pythonanywhereのFilesの一部を削除したりして、整える。
2.Gitからのpushは、$ git clone https://{gitユーザー名}:{gitパスワード}@github.com/(gitユーザー名)/haikusns.git でOK。
3./home/(pythonanywhereのユーザー名)/haikusns で、python3.10 -m venv venv と仮想環境をつくり
source venv/bin/activate
そこに haikusnsの仮想環境に以下の3つ(flask,markupsafe,tinydb: 今回のhaikusnsには必要だった)のインストール
(venv) 01:12 ~/haikusns (main)$ pip install flask tinydb
(venv) 01:27 ~/haikusns (main)$ pip install markupsafe
4.WEB画面のWSGI設定ファイルを次のように書き換える
# This file contains the WSGI configuration required to serve up your
# web application at http://(pythonanywhereのユーザー).pythonanywhere.com/
import sys
# add your project directory to the sys.path
project_home = '/home/(pythonanywhereのユーザー名)/haikusns'
if project_home not in sys.path:
sys.path.append(project_home)
# import flask app but need to call it "application" for WSGI to work
from app import app as application # noqa
5.自分アップロードしたapp.py ファイルの、Markupのインポート行を修正。
# Before
from flask import request, Markup
# After
from flask import request
from markupsafe import Markup
6.reload
デプロイされたサイトは、https://kojikoji.pythonanywhere.com/
関連記事は、こちら https://qiita.com/tkoji3744/items/08b71054dfba4f93f2c4