1
1

More than 1 year has passed since last update.

pyinstallerのspecの書き方

Last updated at Posted at 2023-08-02

#はじめに

.specの使い方

your_spec_file.spec
# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

a = Analysis(['your_script.py'],
             pathex=['/path/to/your/script'],
             binaries=[],
             datas=[('./image/favicon.ico', 'image')], # favicon.icoを含める場合
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='output_name',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=False, # ウィンドウモード
          icon='./image/favicon.ico', # アイコンのパス
          )

使い方

pyinstaller your_spec_file.spec

カスタマイズの場合

  1. 'your_script.py':コンパイルするPythonスクリプトの名前。
  2. '/path/to/your/script':Pythonスクリプトのパス。
  3. 'output_name':出力されるEXEファイルの名前。
  4. console=False:ウィンドウモードを選択する場合。
  5. icon='./image/favicon.ico':EXEファイルに付けるアイコンのパス。

詳細説明

この行は、スクリプトの暗号化に使用されるブロック暗号を定義します。
通常、暗号化は使用されないため、Noneと設定されます。

block_cipher = None

a = Analysis(...): このセクションは、スクリプトの依存関係の解析を行うための設定です。

a = Analysis(['your_script.py'],
             pathex=['/path/to/your/script'],
             binaries=[],
             datas=[('./image/favicon.ico', 'image')], # favicon.icoを含める場合
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)

pathex: スクリプトのパス。
binaries: 追加のバイナリファイルのリスト。
datas: 追加のデータファイル(例:画像など)。
win_no_prefer_redirects, win_private_assemblies, cipher, noarchive: これらはWindows固有の設定で、通常はデフォルト値を使用します。

pyz = PYZ(...): このセクションは、スクリプトとその依存関係をアーカイブにパックする設定です。cipherは前述のblock_cipherと関連しています。

pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

exe = EXE(...): このセクションは、最終的な実行ファイル(EXE)の作成に関連する設定です。

name: 出力されるEXEファイルの名前。
debug: デバッグモードの有効/無効。
strip: シンボルの削除(ファイルサイズの削減)。
upx: UPX圧縮の有効/無効。
console: コンソールモード(True)またはウィンドウモード(False)。
icon: アイコンのパス。

exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='output_name',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=False, # ウィンドウモード
          icon='./image/favicon.ico', # アイコンのパス
          )

参考資料:

1.エラーが出たらまずこの記事を参照しましょう。

  1. scikit-learn

3.よくわからんエラーの場合

  1. OpenCV対応(神対策)

  1. Pypylon

  1. scikit-learn (pyinstallerとscikit-learnは相性があまり良くない印象)

  1. PyinstallerとOne Driveの相性はよくない。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1