画像やtxtなどのデータファイルをpythonプログラムに追加するときに、pyinstallerに問題があります。たとえば、アイコンを含むツールバーを作成し、images という名前の別のフォルダーに保存します。また、いくつかの構成を保存するためのいくつかのtxtおよびxmlファイルがあります。これらの txt ant xml ファイルは、data_files という名前の別のフォルダーに保存されます。すべての py ファイルは、source という名前の別のフォルダーに保存されます。
この python プログラムを pyinstaller でビルドしようとすると、pyinstaller はすべてのソース フォルダーを正常にビルドできますが、images および data_files フォルダーはビルドできません。pyinstaller のドキュメントを確認しましたが、解決策が見つかりませんでした。私は多くのグーグル検索を行いましたが、このリソースだけが役立つとわかりましたが、これは非常に不十分なリソースです.
私の主な質問は次のとおりです。
編集: 解決策を見つけました。spec ファイルを作成するときは、.datasパラメータを指定する必要があります。
# -*- mode: python -*-
a = Analysis([os.path.join(HOMEPATH,'support/_mountzlib.py'), os.path.join(HOMEPATH,'support/useUnicode.py'), '/home/vmode/Desktop/derlem2/sources/TextSTAT.py'],
pathex=['/home/pyinstaller'])
a.datas += [("Images/New.gif","/home/vmode/Desktop/derlem2/Images/New.gif","DATA")]
a.datas += [("Images/Open.gif","/home/vmode/Desktop/derlem2/Images/Open.gif","DATA")]
a.datas += [("Images/Column.gif","/home/vmode/Desktop/derlem2/Images/Column.gif","DATA")]
pyz = PYZ(a.pure)
exe = EXE( pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name=os.path.join('dist', 'TextSTAT'),
debug=False,
strip=False,
upx=True,
console=1 )
上記の仕様コードは、私のプロジェクト用に設計されています。この仕様コードに見られるように、Python プログラムでビルドする 3 つのアイコンを含めました。プログラムが生成されると、これらのアイコンが埋め込まれたスタンドアロンの実行可能ファイルが作成されます。
しかし、非常に多くのファイルがある場合はどうなるでしょうか。プログラムで使用するアイコンが 1000 個あるとします。手動で spec ファイルに書き留めるだけでは不十分です。ファイル ディレクトリを読み取り、これらのファイルを動的に追加するには、ループ システムが必要です。しかし、これらのファイルを動的に追加する方法が見つかりませんでした。これらの非常に多くのファイルを手動で追加する機会はないと思います。知っている人はシェアしてください。