.specファイルを使用してPyInstallerを使用してプログラムを「コンパイル」しています。プログラムに追加のファイルを含める必要があるため、.specファイルを使用しています。しようとするとPyInstaller --onefile Prog.spec
、それはまだ私が期待するように単一のファイルを作成するのではなく、dist
にフォルダーを作成し、すべてのファイルを分離します。私が行った場合 PyInstaller --onefile Prog.py
その後、dist
に単一の.exeファイルを作成します。 .specファイルを使用するときに特別に行う必要があることはありますか?
スペックファイルを編集する代わりに、コマンドラインで追加のファイルを追加できます。
pyinstaller --onefile --add-data <SRC;DEST or SRC:DEST> yourfile.py
それ以外の場合は、specファイルに収集ステップがないことを確認してください。
「1ファイルモードでは、COLLECTの呼び出しはなく、EXEインスタンスはすべてのスクリプト、モジュール、およびバイナリを受け取ります。」
コマンドラインフラグの詳細については、https://pyinstaller.readthedocs.io/en/stable/usage.html を参照してください。
また、問題が解決しない場合は、いくつかの洞察が得られる場合があります: PyInstallerでのデータファイルのバンドル(--onefile)
使用する pyi-makespec --onefile yourprogram.py
は、onefileモードのサンプル仕様ファイルを生成します。
https://pythonhosted.org/PyInstaller/man/pyi-makespec.html
COLLECT呼び出しはなく、EXE呼び出しは異なります。例:
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='main',
debug=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=True )