2
votes

Pyinstaller: échec de l'exécution du script pyi_rth_qt4plugins

Lorsque j'exécute mon .exe qui est créé par pyinstaller, il contient le message d'erreur qui est affiché dans la capture d'écran ci-dessous.

 l'erreur que j'ai eue lorsque j'exécute l'exe p>

J'utilise Python 3.6.4, pyinstaller 3.4 et PyQt5 5.12 pour créer mon programme GUI sous Windows 10. Pourquoi le .exe a-t-il besoin du module PySide et de PyQt4 lorsque j'exécute le .exe? Je ne comprends pas. Le .py peut fonctionner sans aucun bogue.

En fait, avant d'avoir cette erreur, j'ai eu l'erreur Exception: Impossible de trouver les répertoires du plugin PyQt4 pendant le processus de production de l'exe, mais je pensais que je n'avais pas besoin de PyQt4 alors je l'ai désinstallé. Ensuite, le processus pyinstaller a continué jusqu'à ce que j'obtienne une nouvelle erreur.

Could not find a version that satisfies the requirement PyQt4 (from versions: )  
No matching distribution found for PyQt4

Je l'ai résolu en copiant le pyqt5qmlplugin.dll dans le chemin mentionné ci-dessus C: / qt64 / qt_1544645195969 / _h_env / Bibliothèque / plugins . Enfin, j'ai eu le .exe, mais malheureusement, j'ai toujours une erreur qui apparaît dans la capture d'écran, et je ne peux pas installer PyQt4 avec pip. Il rapporte:

Exception:
Cannot find existing PyQt5 plugin directories
Paths checked: C:/qt64/qt_1544645195969/_h_env/Library/plugins

Je ne peux pas non plus installer PySide car seules ces versions de Python sont prises en charge: [(2.6), (2.7), (3.2), ( 3.3), (3.4)] .


0 commentaires

3 Réponses :


0
votes

Ce qui a fonctionné pour moi, c'est la création d'un nouvel environnement avec Python 3.5 et l'installation de toutes les bibliothèques requises pour le script qu'il contient. Si vous utilisez Anaconda, suivez les étapes ci-dessous:

conda create yourenvironmentname python = 3.5

conda activer votre nom d'environnement

Remplacez "yourenvironmentname" par le nom de votre choix pour votre environnement.

Si vous n'utilisez pas Anaconda:

pipenv --python 3.5

Si cela ne fonctionne pas, essayez-le avec python 3.4 à la place.


3 commentaires

Désolé, cela ne fonctionne pas pour moi. Et je ne pense pas que l'erreur soit causée par la version python.


Je peux transférer un programme .py avec succès avec pyinstaller de la même manière. Mais le programme mentionné dans la capture d'écran a toujours échoué. pendant l'exécution avec la commande pyinstaller, il manque toujours un module. Est-ce la raison?


Assurez-vous d'installer tous les modules que vous importez dans le code dans l'environnement que vous avez créé, sinon il ne fonctionnera pas correctement. Si seules les versions de Python mentionnées sont prises en charge, essayez d'exécuter Pyinstaller à partir d'un environnement avec Python 3.4 installé à la place.



0
votes

Le problème avec ceci est que le programme d'installation reconnaît pyqt4. Pour résoudre ce problème, procédez comme suit:

  1. Aller à "\ Lib \ site-packages \ PyInstaller \ loader \ rthooks \ pyi_rth_qt4plugins.py".
  2. Tout commenter.
  3. Une fois cela fait, relancez pyinstaller

    et cela devrait fonctionner. Bonne chance.


0 commentaires

0
votes

Si vous utilisez PyQt5 dans votre programme, allez sur le fichier " pyi_rth_qt4plugins.py " dans le répertoire suivant: Local \ Continuum \ anaconda3 \ Lib \ site-packages \ PyInstaller \ loader \ rthooks.

Remplacer

  1. PySide.QtCore par PySide2.QtCore et
  2. PyQt4.QtCore import QCoreApplication par PyQt5.QtCore import QCoreApplication

J'ai essayé de suivre les étapes supérieures en commentant le fichier et je n'ai pas fonctionné jusqu'à ce que j'aie fait cela.


0 commentaires