2016-04-28 20 views
0

Ich habe ein Skript mit pyinstaller kompiliert und es kompiliert gut, aber wenn ich das Programm ausführen, bekomme ich den folgenden Fehler im Konsolenfenster.Script kompiliert mit pyinstaller DLL laden fehlgeschlagen

ImportError: DLL load failed: The specified module could not be found. 

Ich versuche Crypto zu importieren, wenn ich diesen Fehler erhalte. Warum passiert das und wie kann ich das beheben?

+0

Mögliche Duplikate von [Pyinstaller & Pycrypto] (http://stackoverflow.com/questions/23233222/pyinstaller-pycrypto) – salomonderossi

Antwort

0

Nach the pyinstaller manual:

Sie, dass versteckte Import überprüfen kann, ist das Problem, das durch Pythons ausführliche Importe Flag verwendet. Wenn die Importnachrichten "Modul nicht gefunden" sagen, aber die Datei warnproject.txt keine Nachricht "kein Modul namens ..." für das gleiche Modul hat, dann ist das Problem ein versteckter Import.

Versteckte Importe werden behandelt, indem das Modul (das, das die versteckten Importe ausführt) zur Analysezeit angehängt wird. Tun Sie dies wie folgt:

  1. Erstellen Sie eine Datei mit dem Namen hook-module.py (wo Modul der vollständig qualifizierte Python Name ist zB hook-xml.dom.py) und legen Sie es irgendwo. Merken Sie sich den Ort als Ihr privates Hook-Verzeichnis.

  2. In der spec-Datei übergeben Sie Ihr privates Hooks-Verzeichnis als Hookspath-Argument an Analysis, so dass gesucht wird. Beispiel:

    a = Analysis ([ 'myscript.py'], hookspath = '/ my/priv/Haken) In den meisten Fällen das Haken Modul wird nur eine Zeile:

    hiddenimports = [‘ module1 ',' module2 '] Wenn die Analyse diese Datei findet, wird genau so verfahren, als ob das Modul module1 und module2 explizit importiert hätte.

This question Zusammenhang scheint, könnten die Antworten auch für Sie nützlich sein.

Schließlich scheint this report ein ähnliches Problem zu enthalten. Der Benutzer war anscheinend in der Lage, es zu reparieren, indem er auf pyinstaller 2.1 aktualisierte, also solltest du es versuchen, wenn du es noch nicht getan hast.

+0

Ich versuchte dies, aber ich weiß immer noch nicht, was die versteckten Importe sind, die ich brauche. – cdw100100