Solución:
Usar pyi-makespec --onefile yourprogram.py
para generar un archivo de especificaciones de muestra para el modo de archivo único.
https://pyinstaller.readthedocs.io/en/stable/man/pyi-makespec.html
No hay ninguna llamada COLLECT y la llamada EXE es diferente. Ejemplo:
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name="main",
debug=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=True )
Puede agregar el archivo adicional en la línea de comando en lugar de editar el archivo de especificaciones:
pyinstaller --onefile --add-data <SRC;DEST or SRC:DEST> yourfile.py
De lo contrario, asegúrese de que en el archivo de especificaciones no haya ningún paso de recopilación:
“En el modo de un solo archivo, no se llama a COLLECT y la instancia de EXE recibe todos los scripts, módulos y binarios”.
https://pyinstaller.readthedocs.io/en/stable/usage.html para obtener más información sobre los indicadores de la línea de comandos.
Esto también puede ofrecer información si los problemas persisten: Agrupar archivos de datos con PyInstaller (–onefile)