Error de Windows – Pyinstaller “no se pudo ejecutar el script” cuando se hizo clic en la aplicación

Me está costando mucho superar este error, he buscado ese mensaje de error en todas partes y nada parece relevante para mi situación:

"failed to execute script new-app" 

new-app es mi progtwig GUI de python. Cuando ejecuto pyinstaller usando este comando:

 pyinstaller.exe --onedir --hidden-import FileDialog --windowed --noupx new-app.py 

Funciona sin problemas. Además, cuando ejecuto la línea de comandos para ejecutar el progtwig gui, funciona perfectamente y la GUI se genera con este comando:

 .\dist\new-app\new-app.exe 

Pero cuando voy a ese archivo con la esperanza de poder hacer clic en la aplicación para obtener la GUI, me da el error dicho anteriormente. ¿Porqué es eso?

Estoy usando python2.7 y el sistema operativo es Windows 7 Enterprise.

Cualquier entrada será apreciada y muchas gracias de antemano.

Bueno, supongo que he encontrado la solución para mi propia pregunta, así es como lo hice:

Aunque estaba pudiendo ejecutar el progtwig con éxito usando el comando normal de Python, así como ejecutar correctamente el progtwig de instalación de pyinstaller y poder ejecutar la aplicación “new_app.exe” usando la línea de comandos mencionada en la pregunta que en ambos casos muestra la GUI sin ningún problema en absoluto. Sin embargo, solo cuando hago clic en la aplicación no permite mostrar la GUI y no se genera ningún error.

Entonces, lo que hice es agregar un parámetro extra –debug en el comando pyinstaller y eliminar el parámetro –windowed para que pueda ver lo que realmente sucede cuando se hace clic en la aplicación y descubrí que había un error que generó un error. Mucho sentido cuando lo busco, básicamente se quejó de que “some_image.jpg” no existe tal archivo o directorio .

La razón por la que se queja y no se quejó cuando ejecuté el script desde el primer lugar o incluso usando la línea de comandos “./” es porque la imagen del archivo existía en la misma ruta que el script localizado, pero cuando pyinstaller creó “dist” El directorio que tiene el producto de la aplicación tiene un perfecto sentido de que el archivo de imagen no está allí, así que básicamente lo moví a ese directorio dist donde está la aplicación en la que se puede hacer clic.

Agregue esta función al comienzo de su script:

 import sys, os def resource_path(relative_path): if hasattr(sys, '_MEIPASS'): return os.path.join(sys._MEIPASS, relative_path) return os.path.join(os.path.abspath("."), relative_path) 

Consulte sus archivos de datos llamando a la función resource_path() , así:

 resource_path('myimage.gif') 

Luego usa este comando:

 pyinstaller --onefile --windowed --add-data todo.ico;. script.py 

Para más información visite esta página de documentación .

En caso de que alguien no obtenga resultados de las otras respuestas, solucioné un problema similar al:

  1. añadiendo --hidden-import según sea necesario para los módulos faltantes

  2. Limpiando las carpetas asociadas y los archivos de especificaciones:

rmdir /s /q dist

rmdir /s /q build

del /s /q my_service.spec

  1. Ejecutando los comandos para la instalación como administrador

Recibí el mismo error y me di cuenta de que escribí mi script usando Anaconda pero pyinstaller intenta empaquetar el script en python puro. Por lo tanto, los módulos no existen en la carpeta de la biblioteca pythons causan este problema.