"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 o sudo 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