web-dev-qa-db-fra.com

Fichiers DLL manquants lors de l'utilisation de pyinstaller

Bonne journée!

J'utilise python 3.5.2 avec qt5, pyqt5 et sip14.8 . J'utilise également la dernière version de pyinstaller (3.3.dev0 + g501ad40).

J'essaie de créer un fichier exe pour un programme de base Hello World.

from PyQt5 import QtWidgets
import sys

class newPingDialog(QtWidgets.QMainWindow):

def __init__(self):
    super(newPingDialog, self).__init__()
    self.setGeometry(50, 50, 500, 300)
    self.setWindowTitle("hello!")
    self.show()


app = QtWidgets.QApplication(sys.argv)
GUI = newPingDialog()
sys.exit(app.exec_())

Au début, j'avais quelques erreurs concernant crt-msi. Donc, j'ai réinstallé le SDK et le runtime c ++ et les ai ajoutés à mon environnement .

6296 WARNING: lib not found: Qt5Svg.dll dependency of C:\users\me\appdata\local\programs\python\python35\lib\site-pac
kages\PyQt5\Qt\plugins\imageformats\qsvg.dll
6584 WARNING: lib not found: Qt5Svg.dll dependency of C:\users\me\appdata\local\programs\python\python35\lib\site-pac
kages\PyQt5\Qt\plugins\iconengines\qsvgicon.dll
6992 WARNING: lib not found: Qt5PrintSupport.dll dependency of C:\users\me\appdata\local\programs\python\python35\lib
\site-packages\PyQt5\Qt\plugins\printsupport\windowsprintersupport.dll
7535 WARNING: lib not found: Qt5PrintSupport.dll dependency of c:\users\me\appdata\local\programs\python\python35\lib
\site-packages\PyQt5\QtPrintSupport.pyd
8245 INFO: Looking for eggs
8245 INFO: Using Python library c:\users\me\appdata\local\programs\python\python35\python35.dll
8246 INFO: Found binding redirects:

J'ai vérifié et les deux DLL existent et ont leur PATH défini. J'ai également essayé de les ajouter manuellement à mon dossier dist, mais cela ne m'a pas aidé.

J'apprécierai beaucoup vos conseils!

6
shultz

Cela peut ressembler davantage à une solution de contournement et Pyinstaller pourrait avoir besoin d'être corrigé.

J'ai découvert que l'argument --paths pointant vers le répertoire contenant Qt5Core.dll , Qt5Gui.dll , etc. a aidé

pyinstaller --paths C:\Python35\Lib\site-packages\PyQt5\Qt\bin hello.py
16
J.J. Hakala

J'ai lu toutes les solutions compliquées sur github et stackoverflow pour ce problème . Cependant, la solution simple ci-dessous est ce qui a fonctionné pour moi:

Étape 1: désinstaller le programme de désinstallation de pip3

Étape 2: pip install pyinstaller

Étape 3: pyinstaller --onefile filename.py

J'ai essayé cette solution sur 2 ordinateurs différents qui faisaient face au même problème ... Les deux ont fonctionné ... Merci de me faire savoir si cela fonctionne aussi pour vous. Un bon coup de pouce serait apprécié après cela .

2
Stan

Ce problème a maintenant été résolu dans la dernière branche de développement de PyInstaller, voir ce problème pour PyInstaller sur GitHub .

1
akej74

Ajouter normalement le répertoire de pointage avec l'argument --Path contenant la bibliothèque non résolue résout le problème. Il peut y avoir un problème si l'analyse de la chaîne de commande si vous utilisez PyInstaller 3.3dev. Cela se produit généralement si le chemin contient des espaces. Dans ce cas, vous pouvez modifier l'argument pathex dans le fichier .spec généré par PyInstaller, puis l'exécuter avec PyInstaller pour générer le fichier exécutable.

pyinstaller file_name.spec

Espérons que cela sera bientôt résolu .....

0
Yogesh

26095 ATTENTION: lib introuvable: api-ms-win-crt-runtime-l1-1-0.dll dépendance de c:\utilisateurs\utilisateur\appdata\local\programmes\python\python36-32\DLLs\select.pyd

Recherchez dans C: recherchez dll et définissez le chemin dans la commande pyinstaller. La commande ci-dessous a corrigé l'erreur pyinstaller ci-dessus dans Windows 10:

pyinstaller --paths "C:\Windows\WinSxS\x86_Microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.17134.1_none_50c6cb8431e7428f" hello.py
0
Ritesh Singh