committed by
GitHub
2 changed files with 113 additions and 0 deletions
@ -0,0 +1,112 @@ |
|||
# デバッグ |
|||
|
|||
Visual Studio CodeやPyCharmなどを使用して、エディター上でデバッガーと連携できます。 |
|||
|
|||
## `uvicorn` の実行 |
|||
|
|||
FastAPIアプリケーション上で、`uvicorn` を直接インポートして実行します: |
|||
|
|||
```Python hl_lines="1 15" |
|||
{!../../../docs_src/debugging/tutorial001.py!} |
|||
``` |
|||
|
|||
### `__name__ == "__main__"` について |
|||
|
|||
`__name__ == "__main__"` の主な目的は、ファイルが次のコマンドで呼び出されたときに実行されるコードを用意することです: |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
$ python myapp.py |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
ただし、次のように、別のファイルからインポートされるときには呼び出されません: |
|||
|
|||
```Python |
|||
from myapp import app |
|||
``` |
|||
|
|||
#### より詳しい説明 |
|||
|
|||
ファイルの名前が `myapp.py` だとします。 |
|||
|
|||
以下の様に実行する場合: |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
$ python myapp.py |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
Pythonによって自動的に作成されたファイル内の内部変数 `__name__` は、値として文字列 `"__main__"` を持ちます。 |
|||
|
|||
なので、以下: |
|||
|
|||
```Python |
|||
uvicorn.run(app, host="0.0.0.0", port=8000) |
|||
``` |
|||
|
|||
は実行されます。 |
|||
|
|||
--- |
|||
|
|||
そのモジュール (ファイル) をインポートした場合は、こうはなりません。 |
|||
|
|||
したがって、次のようなもう一つのファイル `importer.py` がある場合: |
|||
|
|||
```Python |
|||
from myapp import app |
|||
|
|||
# Some more code |
|||
``` |
|||
|
|||
`myapp.py` 内の自動変数には、値が `"__main __"` の変数 `__name__` はありません。 |
|||
|
|||
したがって、以下の行: |
|||
|
|||
```Python |
|||
uvicorn.run(app, host="0.0.0.0", port=8000) |
|||
``` |
|||
|
|||
は実行されません。 |
|||
|
|||
!!! info "情報" |
|||
より詳しい情報は、<a href="https://docs.python.org/3/library/__main__.html" class="external-link" target="_blank">公式Pythonドキュメント</a>を参照してください。 |
|||
|
|||
## デバッガーでコードを実行 |
|||
|
|||
コードから直接Uvicornサーバーを実行しているため、デバッガーから直接Pythonプログラム (FastAPIアプリケーション) を呼び出せます。 |
|||
|
|||
--- |
|||
|
|||
例えば、Visual Studio Codeでは、次のことが可能です: |
|||
|
|||
* 「デバッグ」パネルに移動。 |
|||
* 「構成の追加...」 |
|||
* 「Python」を選択。 |
|||
* オプション「`Python: Current File (Integrated Terminal)`」を指定してデバッガーを実行。 |
|||
|
|||
すると、**FastAPI** コードでサーバーが起動され、ブレークポイントで停止したりするでしょう。 |
|||
|
|||
以下の様な画面になります: |
|||
|
|||
<img src="/img/tutorial/debugging/image01.png"> |
|||
|
|||
--- |
|||
|
|||
Pycharmを使用する場合、次のことが可能です: |
|||
|
|||
* 「実行」メニューをオープン。 |
|||
* オプション「デバッグ...」を選択。 |
|||
* 次にコンテキストメニューが表示される。 |
|||
* デバッグするファイル (ここでは `main.py`) を選択。 |
|||
|
|||
すると、**FastAPI** コードでサーバーが起動され、ブレークポイントで停止したりするでしょう。 |
|||
|
|||
以下の様な画面になります: |
|||
|
|||
<img src="/img/tutorial/debugging/image02.png"> |
Loading…
Reference in new issue