「Python実践100本ノックシリーズ」を読んで|どんな人におすすめなのか

【FastAPI】uvicornコマンドでのpycache 生成させない方法

FastAPIで開発していると、__pycache__フォルダが自動的に生成されることがあります。これはPythonがソースコードをバイトコードにコンパイルして保存するための仕組みですが、開発中や特定の環境ではこれを避けたい場合があります。

目次

環境変数を使って__pycache__の生成を防ぐ

最も効果的だった方法は、環境変数PYTHONDONTWRITEBYTECODEを設定することでした。

export PYTHONDONTWRITEBYTECODE=1
uvicorn app.main:app --reload

この設定を行うことで、Pythonはバイトコードファイル(.pyc)を生成しなくなり、__pycache__フォルダも作成されませんでした。この方法は、シェルやOSレベルで環境変数を設定する場合に有効です。

他の方法を試してみたが…

コード内での設定

sys.dont_write_bytecode = Trueをコードの先頭に書く方法も試しました。

import sys
sys.dont_write_bytecode = True

しかし、この方法では既にインポートされているモジュールによって__pycache__が生成されてしまい、完全には防げませんでした。(もしかしたら、方法によってもこれでもいけるかも?)

uvicorn-Bオプション

uvicornを実行する際に-Bオプションを付けてみましたが、以下のようなエラーが出てしまいました。

uvicorn -B app.main:app --reload
Error: No such option: -B

uvicornには-Bオプションが存在しないため、この方法は使用できませんでした。

まとめ

__pycache__の生成を防ぐには、環境変数PYTHONDONTWRITEBYTECODEを設定する方法が最も確実でした。他の方法も試してみましたが、完全には防げなかったり、エラーが発生したりしました。同じような悩みを持つ方は、ぜひこの方法を試してみてください。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次