【Python】__pycache__ファイルを作らない方法

プログラム
スポンサーリンク

はじめに

今回はPythonを実行した際に生成される「__pycache__」ファイルを作らない方法を紹介します。
Pythonの導入や基本操作が行えることを前提で進めます。

↓前提知識はこちらをご覧ください↓

【Python】導入方法から基本操作について
Pythonは無料で使えるプログラミング言語でA「I開発や作業の自動化」に強いとされてます。導入は公式サイトからダウンロード。DLしたら「IDLE」を起動して動かします。2行以上のブログラムの場合は「.py」ファイルを作成する必要があります。

__pycache__ファイルが作られる原因

「__pycache__」はPythonでモジュールを動かした際に生成されます。
モジュールとは「.pyファイル」で書い外付けのプログラムです。
下図の様な形で「import」を使って読み込む形になります。

下図のように2つ以上のプログラムを用意。
モジュールを読み込んで動かす設定をした方のプログラムを確認して実行。

すると… 「__pycache__」ファイルが作られます。
この__pycache__は、モジュール読み込みを高速するキャッシュファイルです。

高速化の効果は… 体感ではあまり無いようです。
ファイル内に余計なモノが生成されて、汚くなる方が問題になります。
なので “作らない設定” が必要になります。

(問題が起こったら、再度作るようにしてください)

そしたら、これが基本不要なモノと分かったので…
生成された「__pycache__」は右クリック。
→ 削除をShift+クリックして消してください。

以上が、__pycache__ファイルが作られる原因の解説です。

__pycache__を消す方法

__pycache__を消す方法は下記の3つ

・プログラム内に作らない処理を入れる
・コマンドプロンプトで作らない設定を入れて起動する
・コマンドプロンプトで2度と作らない処理を入れる(Windows OS)

こちらの3つについて解説していきます。

プログラム内に作らない処理を入れる

モジュールを読み込んで使うプログラムに下記の一文を追加。

import sys
sys.dont_write_bytecode = True

一番上の所に入れます。

この状態で「F5」キーで実行。

すると… 「__pycache__」が生成されません。

以上が、1つ目のプログラム内に作らない処理を入れる方法です。

コマンドプロンプトでプログラムを動かす(簡易)

そしたら動作確認のため、先ほど行ったプログラムの設定を解除します。
↓の一文を削除。

import sys
sys.dont_write_bytecode = True

下図のようなプログラムに戻して、まず “ターミナル” で実行する方法を紹介します。

そしたら、プログラムを保存した場所を開きます。
①ファイルのパスをコピー
②.pyファイル名を確認

そして、①と②の情報を下記のようにまとめます。
①と②の間に「\」を入れるようにしてください。

"プログラムの保存先" \ "プログラム名" .py

Windowsキー → Windows システム ツールのフォルダを開きます。
そして「コマンド プロンプト」を選択。

そしたら、先ほど「プログラムの保存先\プログラム名.py」を打ち込み。
Enterキーで実行。
すると、コマンドプロンプトで.pyファイルを動かせます。

そして… 「__pycache__」ファイルが作られます。

そしたら「__pycache__」を右クリック。
Shiftキーを押しながら「削除」を選択して消します。

以上が、コマンドプロンプトでプログラムを動かす方法です。

コマンドプロンプトで作らない設定を入れて起動する

コマンドプロンプトを使った際、特殊な文字を打ち込みます。
すると「__pycache__」無しで.pyファイルを実行できます。

python -B "プログラムの保存先" \ "プログラム名" .py

最初に「python -B 」と打ち込んでから、先ほどと同じ手順で実行。

すると「__pycache__」が生成されずに.pyファイルを実行できます。

もし、出力結果が「Python」の場合は…
「アプリ実行エイリアスを設定」か「環境変数」の問題が起こってます。

↓これに関しては、この記事の…
「「Python」しか出力されない時の対処法」を見て修正してください。

【Python】コマンドプロンプトでPythonを動かす方法【環境変数,Pathを通す】
Windows OSの場合.pyプログラムはコマンドプロンプトで動かすと「python -」のコマンドが使えます。出力結果がPythonしか出ない場合は、アプリ実行エイリアスをオフにしたり、環境変数を調整してPathを通すなどの調整をします。

以上が、コマンドプロンプトで作らない設定を入れて起動する方法です。

コマンドプロンプトで2度と作らない処理を入れる

次の操作をターミナルで行うと、2度と「__pycache__」が作られなくなります。

set PYTHONDONTWRITEBYTECODE=1

このコードを動かしてから.pyプログラムを実行。

すると「__pycache__」が二度と作られなくなります。

.pyファイルを開いて、F5で実行しても同様の挙動です。
こちらでも「__pycache__」が作られなくなります。

また、この「__pycache__」を作る設定を戻したい場合は…
下記のコードをコマンドプロンプトで実行してください。

set PYTHONDONTWRITEBYTECODE=

これで「__pycache__」ファイルを作る設定に戻せます。

以上が、コマンドプロンプトで2度と作らない処理を入れる方法です。

まとめ

今回は、Pythonで「__pycache__」ファイルを作らない方法を紹介しました。

・__pycache__はモジュールを読み込んだ時に作られるファイル
・中に.pycファイルが入っている
・モジュールの読み込みを少し早くするキャッシュファイルが作られる
・ただ、無くてもあまり問題にならず、ファイルに余計なモノが増えるだけになりがち
・プログラム内に特殊な処理を入れたり、コマンドプロンプトでpython -Bを入れて実行すると作られない
・コマンドプロンプトで「set PYTHONDONTWRITEBYTECODE=1」を実行すると、継続して作られない

また、他にもプログラムについて解説してます。

【Python】__pycache__ファイルを作らない方法
__pycache__はモジュール読み込み時に作られるキャッシュファイルで、プログラムに特殊な処理を入れたり、コマンドプロンプトでpython -Bや「set PYTHONDONTWRITEBYTECODE=1」を使うと作られなくなります。

ぜひ、こちらもご覧ください。

コメント

タイトルとURLをコピーしました