なぜ PY を PYC に変換するのですか?
.pyc への事前コンパイルにより、Python は次回の実行時に解析(パース)ステップをスキップできるため、起動速度がわずかに向上します。また、バイトコードは人間が読めるソースではないため、軽度の難読化にもなりますが、uncompyle6 などのツールでデコンパイルすることが可能です。
PY から PYC への変換方法
Python (py_compile) FREE
ターミナルで python -m py_compile yourscript.py を実行します。.pyc ファイルは、スクリプトと同じ場所にある __pycache__ サブフォルダ内に、Python バージョン タグが付いた名前で表示されます。
Python (compileall) FREE
ディレクトリ ツリー内のすべての .py ファイルを一度にコンパイルするには、python -m compileall /path/to/project を実行します。すべての .pyc ファイルは、それぞれの __pycache__ サブフォルダに表示されます。
これらの形式について
.pyファイルはPythonソースコードファイルです。Python言語で書かれたプログラムやスクリプトを含むプレーンテキストです。コードを読むには、任意のテキストエディタで開いてください。実行するには、python.orgからPythonをインストールし、ターミナルで «python file.py» と入力します。信頼できないソースからの .py…
.PY の詳細を開く →.pyc ファイルは、CPython が起動を高速化するために自動的にキャッシュするコンパイル済みの Python バイトコードです。通常、手動で開いたり操作したりする必要はありません。実行するには、対応する Python バージョンを使用してください。.pyc からソースコードを復元するには、decompyle3 や pycdc…
.PYC の詳細を開く →品質と注意点
.pycファイルは、それをコンパイルした正確な Python バージョンに関連付けられています。各バージョンはヘッダーに固有のマジック ナンバーを埋め込むため、Python 3.12 でコンパイルされたファイルは Python 3.11 以前ではロードされません。.pycは真のソース保護ではありません -uncompyle6などのツールを使用すると、バイトコードを読み取り可能な Python ソースにデコンパイルできます。知的財産を保護するためにこれに依存しないでください。- Python 3 は常に
.pycファイルを__pycache__サブフォルダに書き込み、ソース ファイルの隣に置くことはありません。古い.pyo最適化バイトコード拡張子は Python 3.5 で削除されました。
よくある質問
手動で PYC にコンパイルする必要がありますか、それとも Python が自動的に行いますか?
.pyc にコンパイルします。手動の py_compile コマンドは、実行せずに事前コンパイルする場合や、構文エラーを早期に発見する場合に便利です。元の PY ソースなしで PYC ファイルのみを配布できますか?
.pyc ファイルはバージョン依存であり、デコンパイルも可能です。標準的な慣習としては、代わりに .py ソースを配布します。Python は PYC ファイルをどこに置きますか?
.py ソースの隣にある __pycache__ サブフォルダ内に、コンパイルした Python バージョンを反映した yourscript.cpython-312.pyc のような名前で配置されます。