pyinstaller configファイルの読み込み
pyinstallerは基本的に設定しない限り外部ファイルを読み込んでもらえません。
対応としてはpyinstller実施時に作成されるxxx.specファイルを使用することで外部ファイルを読み込むことができるようになります。
外部ファイルを読み込ませるには以下の設定をspecファイルに記載します。
a.datas += [(“読み込みたいファイル名”),”相対パス”,”DATA”]
xxx.specを保存したのちpyinstaller xxx.specで実行ファイルを作成することができます。
exe/appを実行する際は対象のPCで実行しているカレントディレクトリが実行ディレクトリになります。ソース上の外部ファイル読み込みパスに相対パスを設定している場合はexe実行前にexeのあるフォルダまで”cd”で移動する必要があります。
ソースコード( specファイル )
# -*- mode: python -*-
block_cipher = None
a = Analysis(['XXX.py'],
pathex=['\\Python\\XXX_env'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
a.datas += [('config.ini', '.\\config.ini', 'DATA')]
a.datas += [('templatehtml.txt', '.\\templatehtml.txt', 'DATA')]
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='XXX',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='XXX')