Pythonの__pycache__
ディレクトリは、Pythonファイルをコンパイルしたバイトコード(.pyc
ファイル)をキャッシュするために自動生成されます。このディレクトリの場所を明示的に指定する方法は、Python標準には直接は存在しませんが、いくつかの方法で__pycache__
の管理やディレクトリの扱いを調整することはできます。
1. PYTHONPYCACHEPREFIX
環境変数を使う
Python 3.8以降では、PYTHONPYCACHEPREFIX
環境変数を使って__pycache__
ディレクトリの保存場所を変更できます。この変数にカスタムのディレクトリパスを指定すると、すべてのバイトコードキャッシュがその場所に保存されます。
使い方
以下の例では、キャッシュを/path/to/custom/cache
に保存します。
Linux/macOS
export PYTHONPYCACHEPREFIX=/path/to/custom/cache
python your_script.py
Windows
set PYTHONPYCACHEPREFIX=C:\path\to\custom\cache
python your_script.py
これで__pycache__
フォルダが指定したディレクトリに生成され、スクリプト実行ごとにその場所にバイトコードキャッシュが保存されます。
2. プログラム内でsys
モジュールを使って設定
PYTHONPYCACHEPREFIX
をプログラム内で設定したい場合は、次のようにos.environ
を使用します。
import os
import sys
os.environ['PYTHONPYCACHEPREFIX'] = '/path/to/custom/cache'
# これで以降のインポートやコンパイル時にカスタムキャッシュディレクトリが使われます
3. __pycache__
ディレクトリを削除または無視する方法
__pycache__
ディレクトリを生成させたくない場合や、キャッシュを保持したくない場合、以下の方法もあります:
-
実行時にキャッシュを無効にする: スクリプト実行時にキャッシュを生成させない場合は、
PYTHONDONTWRITEBYTECODE
環境変数を設定します。export PYTHONDONTWRITEBYTECODE=1 # Linux/macOS set PYTHONDONTWRITEBYTECODE=1 # Windows
-
.pyc
ファイルをクリーンアップ: 不要になった__pycache__
フォルダをクリーンアップするには、以下のコマンドを実行します。find . -name "__pycache__" -type d -exec rm -r {} +
これらの方法で、__pycache__
ディレクトリの管理を柔軟に行えます。