MacでFlaskをrunすると「Address already in use」が出るときは
たとえば
from flask import Flask
app = Flask(__name__)
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)
上記のようなコードで実行すると、
「Address already in use」のエラーが出て実行できない。
検索してみると、lsof -i:ポートNo
でプロセスを特定して、killしましょう
という情報がたくさん出てきたのでkillしてみるが、
killしても勝手にポート5000のプロセスが上がってくる。
対処方法
AirPlayレシーバーをオフにする
システム環境設定 〜 共有
から、「AirPlayレシーバー」のチェックを外す。
参考:Port 5000 already in use — MacOS Monterey issue
ポート番号を変更してしまう
AirPlayサーバー機能を使用したい場合は、ポート番号を変更するしかないと思われる。port=
でポート番号を指定できるので、下記のように5000以外のポートを指定する。
from flask import Flask
app = Flask(__name__)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=6000, debug=True)
ちなみに
Apple ソフトウェア製品で使われている TCP および UDP ポート
Apple公式に上記のページには、特にポート番号:5000に関する記載はなかった(執筆時点)。
ディスカッション
コメント一覧
まだ、コメントがありません