デバッグ¶
例えば、Visual Studio Code や PyCharm を使用して、エディタでデバッガを接続できます。
uvicorn を呼び出す¶
FastAPI アプリケーションで、uvicorn を直接インポートして実行します。
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def root():
a = "a"
b = "b" + a
return {"hello world": b}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
__name__ == "__main__" について¶
__name__ == "__main__" の主な目的は、ファイルが次のように呼び出されたときに実行されるコードを持たせることです。
$ python myapp.py
しかし、別のファイルがそれをインポートする場合には呼び出されません。
from myapp import app
詳細¶
ファイル名が myapp.py であるとします。
次のように実行すると、
$ python myapp.py
そのファイル内の Python によって自動的に作成される内部変数 __name__ は、値として文字列 "__main__" を持ちます。
したがって、セクション
uvicorn.run(app, host="0.0.0.0", port=8000)
が実行されます。
モジュール(ファイル)をインポートした場合、これは発生しません。
したがって、次のような別のファイル importer.py がある場合、
from myapp import app
# Some more code
この場合、myapp.py 内で自動的に作成される変数 __name__ は "__main__" の値を持っていません。
したがって、行
uvicorn.run(app, host="0.0.0.0", port=8000)
は実行されません。
情報
詳細については、公式の Python ドキュメント を確認してください。
デバッガでコードを実行する¶
Uvicorn サーバーをコードから直接実行しているため、Python プログラム(FastAPI アプリケーション)をデバッガから直接呼び出すことができます。
例えば、Visual Studio Code では、次のようにできます。
- 「デバッグ」パネルに移動します。
- 「構成を追加...」を選択します。
- 「Python」を選択します。
- 「
Python: Current File (Integrated Terminal)」オプションでデバッガを実行します。
これにより、FastAPI コードでサーバーが起動し、ブレークポイントで停止するなどが行われます。
これは次のように表示されます。

PyCharm を使用している場合は、次のようにできます。
- 「実行」メニューを開きます。
- 「デバッグ...」オプションを選択します。
- 次に、コンテキストメニューが表示されます。
- デバッグするファイルを選択します(この場合は
main.py)。
これにより、FastAPI コードでサーバーが起動し、ブレークポイントで停止するなどが行われます。
これは次のように表示されます。
