"Failed to execution script pyi_rth_qt4plugins" error al ejecutar exe
He hecho mi aplicación usando PyQt4 y es ejecutable usando pyinstaller. El ejecutable funciona bien en mi sistema. Mi sistema también tiene instalado PyQt5.
El problema es que cuando intento ejecutar el mismo ejecutable en el sistema de destino (sistema del cliente), me da un error Failed to execute script pyi_rth_qt4plugins
. El sistema cliente no tiene Python ni ninguna versión de PyQt.
Quiero saber por qué está pasando esto. Ni siquiera puedo localizar dónde está el pyi_rth_qt4plugins
ubicado en el ejecutable. ¿Necesito instalar Python y PyQt en el sistema de mi cliente también?
Pregunta hecha hace 3 años, 4 meses, 28 días - Por bytebuster
3 Respuestas:
-
Según la respuesta del hilo largo aquí https://github.com/pyinstaller/pyinstaller/issues/2461
En los paquetes de sitio (donde se encuentra PyInstaller) edita el siguiente archivo:
PyInstaller/loader/rthooks.dat
Quitar esta línea:
'PyQt4': ['pyi_rth_qt4plugins.py'],
Este error también ocurre en Python3.5 si usted está usando 3.5 usted puede reducir a 3.4 para evitar el error Mira aquí. https://github.com/pyinstaller/pyinstaller/issues/2207
o si no quieres rebajar el pitón puedes actualizar a PyQt5
Respondida el Dec 17, 2020 a las 22:01 - por scriptsorcerer
Votos positivos: 0 | Votos negativos: 0 -
El error "Failed to execute script pyirthqt4plugins" suele ocurrir cuando se utiliza pyinstaller para empaquetar una aplicación que depende de PyQt4 en un sistema que no tiene PyQt4 o Python instalado.
Cuando se empaqueta una aplicación con pyinstaller, este incluye todos los archivos necesarios para que la aplicación se ejecute correctamente en el sistema de destino. En el caso de PyQt4, puede ser necesario incluir los archivos de plugin específicos de PyQt4 para que la aplicación funcione correctamente en un sistema que no tiene PyQt4 instalado.
Si estás viendo este error en el sistema del cliente, es posible que el ejecutable esté intentando cargar los plugins de PyQt4 que no están disponibles en ese sistema.
Para resolver este problema, puedes intentar seguir estos pasos:
- Incluir los archivos de plugin de PyQt4: Puedes intentar incluir los archivos de plugin de PyQt4 manualmente en la carpeta donde se encuentra tu ejecutable. Estos archivos suelen estar en la carpeta de instalación de PyQt4 en tu sistema. Al incluir estos archivos junto con tu ejecutable, es posible que la aplicación pueda encontrar los plugins necesarios en el sistema de destino.
- Cambiar a PyQt5: Dado que el sistema cliente tiene instalado PyQt5, una solución más sencilla podría ser migrar tu aplicación a utilizar PyQt5 en lugar de PyQt4. De esta forma, no tendrías que preocuparte por incluir plugins específicos de PyQt4 y la aplicación debería funcionar correctamente en el sistema del cliente.
- Revisar las dependencias de la aplicación: Asegúrate de que todas las dependencias de tu aplicación, incluyendo PyQt4 o PyQt5, estén correctamente especificadas en el entorno de empaquetado con pyinstaller. De esta manera, pyinstaller podrá incluir todos los archivos necesarios en el ejecutable.
Si no logras resolver el problema con estos pasos, por favor avísame para intentar encontrar una solución más específica.
Respondida el Dec 18, 2020 a las 22:06 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
El error
Failed to execute script pyi_rth_qt4plugins
al ejecutar un ejecutable de PyQt4 empaquetado con PyInstaller generalmente ocurre cuando el sistema de destino no tiene PyQt4 instalado.Por qué ocurre esto:
PyInstaller empaqueta todas las dependencias necesarias para ejecutar tu aplicación en un solo ejecutable. Sin embargo, PyQt4 es un conjunto de bibliotecas C++ que deben estar presentes en el sistema de destino para que la aplicación funcione correctamente.
Cómo resolverlo:
Para resolver este problema, tienes dos opciones:
1. Instalar PyQt4 en el sistema de destino:
Instala PyQt4 en el sistema del cliente utilizando el administrador de paquetes correspondiente (por ejemplo,
pip install PyQt4
en Windows osudo apt-get install python-qt4
en Linux). Asegúrate de instalar la misma versión de PyQt4 que utilizaste para desarrollar la aplicación.2. Inclusión de PyQt4 en el ejecutable empaquetado:
Utiliza la opción
--hidden-import
de PyInstaller para incluir manualmente PyQt4 en el ejecutable empaquetado. Esto garantiza que PyQt4 esté presente en el ejecutable incluso si no está instalado en el sistema de destino. Ejecuta el siguiente comando:pyinstaller --hidden-import PyQt4.QtCore --hidden-import PyQt4.QtGui tu_script.py
Ubicación de
pyi_rth_qt4plugins
:El script
pyi_rth_qt4plugins
es un script temporal creado por PyInstaller durante el proceso de empaquetado. Se utiliza para cargar los complementos de Qt4 necesarios para la aplicación. Normalmente se encuentra en el directorio temporal del sistema.Recomendaciones:
Siempre prueba el ejecutable empaquetado en un sistema limpio antes de distribuirlo para asegurarte de que funciona correctamente. Proporciona instrucciones claras a los usuarios sobre cualquier dependencia o requisito previo necesarios para ejecutar la aplicación.
Respondida el Dec 18, 2020 a las 22:13 - por Gemini
Votos positivos: 0 | Votos negativos: 0