Pythonで画像フォルダなどが存在する場合Pyinstallerでexe化するのに少し手こずったので備忘録として残します。
Pyinstaller時は以下コマンドを使用してimgフォルダ内のすべてを含める
pyinstaller --onefile --add-data "img/*;img" main.py
Pyinstallerでexe化するときに画像ファイルなどを呼びだすときに一時ファイルとして書き出されるのでその場所を特定するためのpythonコードを追加する
def resourcePath(filename):
if hasattr(sys, "_MEIPASS"):
return os.path.join(sys._MEIPASS, filename)
return os.path.join(filename)
使用する際は以下の様な感じで書く
resourcePath("img/test.png")