PySimpleGUI

PySimpleGUI holderも含めたexeファイル作成

PySimpleGUIのアプリをexeファイルに変換するためには、通常pyinstallerというツールを使用します。
pyinstallerはPythonプログラムをスタンドアロンの実行可能ファイルに変換することができます。

#python exe化
 PS C:\Users\n1tk\desktop> pyinstaller abcxxx.py --onefile --noconsole 

# dataは別holderの方が後々追加などし易いので、この方法がbestと思います。

---------------------------------------------------------------------

#他にも次の方法があるようです。

テキストファイル、画像ファイル、サウンドファイルなどのリソースも一緒にexeにパッケージングすることが可能です。
それには--add-dataオプションを使用します。

例えば:

pyinstaller --onefile --add-data 'path/to/your/image.png;.' --add-data 'path/to/your/sound.wav;.' --add-data 'path/to/your/text.txt;.' your_script.py

このコマンドは以下のことを行います:
    --onefile: 一つのexeファイルを作成します。
    --add-data: それぞれのデータファイル(画像、サウンド、テキスト)をexeファイルに追加します。
    ;.は追加したデータの実行時のパスを指定します。Windowsでは;を、LinuxやMacでは:を使います。
    your_script.py: exeに変換したいPythonスクリプトのパスです。

   ただし、この方法でexeファイルを作成した場合、リソースファイルへのパスは実行時のカレントディレクトリになることに
   注意してください。それを考慮に入れて、アプリケーションのコードでリソースを参照する必要があります。


多数のファイルを追加する必要がある場合、それぞれを手動で追加するのは非効率的です。
しかし、スクリプトを使って自動的にそれらのファイルを指定することが可能です。

以下に、Pythonのスクリプトを使用して、特定のディレクトリ内のすべてのファイルを
--add-dataオプションとして生成する方法を示します:

import os

# ファイルが含まれているディレクトリ
directories = ['path/to/images', 'path/to/sounds', 'path/to/texts']

data_files = []

for directory in directories:
    for file_name in os.listdir(directory):
        if os.path.isfile(os.path.join(directory, file_name)):
            data_files.append(f'{os.path.join(directory, file_name)};.')

data_files_option = ' '.join(f'--add-data "{df}"' for df in data_files)
command = f'pyinstaller --onefile {data_files_option} your_script.py'
os.system(command)

このスクリプトは指定された各ディレクトリ内のすべてのファイルをリストアップし、
それらを--add-dataオプションとして追加します。その後、そのオプションを含むpyinstallerコマンドを実行します。

なお、このスクリプトはすべてのファイルをフラットに扱います(サブディレクトリ内のファイルは考慮されません)。
それらも考慮する必要がある場合は、より進んだ方法を使用する必要があります(例えば、os.walk()関数を使用してサブディレクトリを再帰的に探索するなど)。


PAGE TOP