2016-07-30 7 views
5

Guten Tag!Fehlende DLL-Dateien bei Verwendung von Pyinstaller

Ich benutze Python 3.5.2 mit qt5, pyqt5 und sip14.8. Ich benutze auch die neuesten pyinstaller bracnch (3.3.dev0 + g501ad40).

Ich versuche, eine EXE-Datei für eine grundlegende Hallo Welt-Programm zu erstellen.

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_()) 

Zuerst habe ich einige Fehler bezüglich crt-msi bekommen. Also habe ich SDK und C++ Runtime neu installiert und sie zu meiner Umgebung hinzugefügt. Aber jetzt halte ich Fehler über fehlende DLLs (qsvg, Qt5PrintSupport)

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: 

Ich habe überprüft und beide DLLs existieren immer und haben ihre PATH gesetzt. Ich habe auch versucht, sie manuell zu meinem Dist-Ordner hinzuzufügen, aber es hat nicht geholfen.

Ich schätze jeden Rat, den Sie haben könnten!

+1

'einfügen' eine 'dll' in Ihrer exe 'ist schwer möglich. Versuchen Sie '' source ''zur Builder-Konfiguration hinzuzufügen. Eine Sache 'von x importieren y' nicht zu' importieren x.y' oder 'importieren x.y als z' – dsgdfg

Antwort

14

Dies könnte mehr wie eine Problemumgehung sein und Pyinstaller muss möglicherweise behoben werden.

Ich fand heraus, dass --paths Argument an das Verzeichnis verweist enthält Qt5Core.dll, Qt5Gui.dll usw. half

pyinstaller --paths C:\Python35\Lib\site-packages\PyQt5\Qt\bin hello.py 
+0

Es funktionierte! Ich habe 3 Tage damit verbracht, und deine Lösung hat funktioniert! Danke! – shultz

+0

Das gleiche für mich. Vielen Dank für diesen Tipp. Ich war kurz davor, es aufzugeben. Mit --pfaden funktioniert es. – MrLeeh

+0

Wenn Sie eine virtuelle Umgebung verwenden, können Sie auch --paths auf 'venv \ Lib \ site-packages \ PyQt5 \ Qt \ bin' setzen. – MrLeeh

0

Normalerweise --Path Argument zeigt Verzeichnis mit unfound Bibliothek löst das Problem hinzufügen. Wenn Sie PyInstaller 3.3dev verwenden, liegt möglicherweise ein Problem beim Parsen der Befehlskette vor. Dies geschieht im Allgemeinen, wenn der Pfad Leerzeichen enthält. In diesem Fall können Sie das Argument pathex in der Datei .spec ändern, die von PyInstaller generiert wurde, und es dann mit PyInstaller ausführen, um die ausführbare Datei zu erstellen.

pyinstaller file_name.spec 

Hoffentlich wird dies bald behoben sein .....

Verwandte Themen