俺言語。

自分にしか理解できない言語で書かれた備忘録

【Python】Pyinstaller specファイル

Pyinstaller Specファイルのメモ

# -*- mode: python -*-

block_cipher = None
a = Analysis(
             [],  # 実行する.pyファイル
             pathex=[''],  # 上記.pyファイルが格納されているフォルダのパス
             binaries=[],  # 依存するdllファイルがあれば
             datas=[],  # 使用する画像ファイルやPDF、iniファイルを記述。タプルの2つ目はフォルダ指示。 e.g.) datas=[("memo.ini", ".")]
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             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,
          [],
          exclude_binaries=True,
          name='',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=False   # 実行時のコンソール表示/非表示(debug時に使用すると便利)
 )

coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='')

Pyinstallerは実行時に
(例:%USERPROFILE%/AppData/Local/Temp/_MEIxxxxxx)
に展開されて実行される。
そのため、埋め込んだ画像ファイル等のリソースがこれを参照して実行するように
変更する必要あり。

Specファイルを作成後、
Terminalでカレントのディレクトリをspceファイルの場所まで移動して
>pyinstaller ***.spec
を実行する。