0
1

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 1 year has passed since last update.

PythonAnywhereでFlaskアプリを実行したときに生じる「Error running WSGI application」エラーの対処法

Last updated at Posted at 2023-02-03

初めての投稿なので、読みにくいかもしれませんがご了承ください。

エラー

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文を外すように指示をしたのでしょうか…。今度先生に質問してみることにします。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?