初めての投稿なので、読みにくいかもしれませんがご了承ください。
エラー
error.log
2023-02-03 14:55:46,616: Error running WSGI application
2023-02-03 14:55:46,617: OSError: [Errno 98] Address already in use
PythonAnywhere上にFlaskアプリをデプロイして実行したときに、上のようなAddress already in use
というエラーが起きて解決するまで時間がかかりました。
ネットで調べたlsofでプロセスを確認することや、killコマンドを使うなど試しましたが、全て上手くいかず…。
解決策
main.pyでFlaskのサーバーを起動する書き方が問題でした。
main.py(編集前)
app.run(debug=True, host='0.0.0.0')
main.py(編集後)
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
以前、授業では「if __name__ == '__main__':
の部分を消す」と習いましたが、これが無いと先ほどのAddress already in useが表示されてしまうようです。
このif文を書くことで、無事にサーバーの起動ができました!
余談
授業で使った環境はReplitだったのですが、試しにReplitでもif文を付けてからサーバーの起動を試してみたら、こちらもちゃんと起動が出来ました。
だとすると、なぜif文を外すように指示をしたのでしょうか…。今度先生に質問してみることにします。