なぜ PYC を EXE に変換するのですか?
.exe を作成する主な理由は配布です。パッケージ化された実行ファイルは Python がインストールされていない Windows 上で動作するため、エンドユーザーや管理外のマシンでのセットアップ要件がなくなります。.pyc は実行時に Python インタープリタに依存するバイトコードであり、スタンドアロンの実行ファイルとして動作させることはできません。
PYC から EXE への変換方法
PyInstaller FREE
pip install pyinstaller でインストールし、pyinstaller --onefile your_script.py を実行すると、dist/ フォルダに生成された .exe が保存されます。GUI アプリの場合は --noconsole を、カスタムアイコンを設定する場合は --icon=app.ico を使用します。
cx_Freeze FREE
pip install cx_Freeze でインストールし、スクリプトを Executable として指定した setup.py を作成して python setup.py build を実行します。出力は build/ フォルダに生成され、フォルダ全体を配布する必要があります。
これらの形式について
.pyc ファイルは、CPython が起動を高速化するために自動的にキャッシュするコンパイル済みの Python バイトコードです。通常、手動で開いたり操作したりする必要はありません。実行するには、対応する Python バージョンを使用してください。.pyc からソースコードを復元するには、decompyle3 や pycdc…
.PYC の詳細を開く →EXEファイルはWindowsの実行プログラムです。Windowsでは、ダブルクリックして実行します。MacやLinuxでは、CrossOverやWineを使用してください。EXEはWindows以外ではネイティブに動作しません。EXEはWindowsにおけるマルウェア配布の最も一般的な形式であるため、信頼できるソースからのファイルのみを実行してください。
.EXE の詳細を開く →品質と注意点
.pycだけでなく.pyソースファイルが必要です。.pycしか手元にない場合は、まずデコンパイルしてください。ただし、Python 3.9 以降ではデコンパイルが不完全な場合があることに注意してください。- 生成される
.exeはプラットフォーム固有です。Windows でビルドすると Windows 用の実行ファイルが作成され、他の OS 用にクロスコンパイルすることはできません。 - すべてのインポートと依存関係が正しく取り込まれているか確認するために、Python がインストールされていないクリーンなマシンで
.exeをテストしてください。
よくある質問
PyInstaller と cx_Freeze の違いは何ですか?
.exe を生成する --onefile モードをサポートしています。cx_Freeze は常に、まとめて保持する必要があるファイルのフォルダを生成します。.pyc ファイルから直接 .exe をビルドできますか?
.py ソースファイルを必要とします。.pyc しか持っていない場合は、まず .py にデコンパイルしてください。