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.
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)]
.
3 Réponses :
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.
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.
Le problème avec ceci est que le programme d'installation reconnaît pyqt4. Pour résoudre ce problème, procédez comme suit:
Une fois cela fait, relancez pyinstaller
et cela devrait fonctionner. Bonne chance.
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
PySide.QtCore
par PySide2.QtCore
et 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.