2012-04-09 4 views
2

Ich versuche, das pyOpenSSL-Paket in eine ausführbare Datei aus einer virtuellen Umgebung aufzunehmen. Die ausführbare Datei wird ohne Fehler erstellt, aber wenn ich zum Ausführen komme, schlägt sie fehl mit dem Fehler "DLL load failed: Das angegebene Modul konnte nicht gefunden werden".Verpacken von pyOpenSSL in eine Windows-Programmdatei mit PyInstaller

Nach der Untersuchung würde es scheinen, dass die beiden DLLs in pyOpenSSL (libeay32.dll & ssleay32.dll) nicht in der ausführbaren Datei enthalten sind. Ich habe dies schließlich bewiesen, indem ich die DLLs auf den Pfad setzte und die ausführbare Datei ausführte.

Kann jemand den einfachsten Weg empfehlen, die fehlenden DLLs zu erzwingen, um in das Paket aufgenommen zu werden.

Vielen Dank

Antwort

1

Klingt wie Sie manuell den DLLs in der Spec-Datei angeben. Weitere Informationen zu gültigen Datentypen in der Spezifikationsdatei finden Sie unter documentation on the TOC Class. Scheint, dass Sie BINARY verwenden möchten.

0

Ich habe gerade ein Update von pyOpenSSL v.0.13 (welches ein msi-Installationsprogramm für Windows hatte) nach v.0.15 (welches ich über "pip" mit Python v.2.7.9 installiert habe). Zuvor hat pyInstaller gut funktioniert. Danach konnte pyInstaller kein funktionierendes Paket erzeugen. Es stellt sich heraus, dass eine Abhängigkeit fehlt. Es war jedoch keine DLL, sondern ein Pyd.

Kopieren Sie einfach die Datei C: \ Python27 \ Lib \ Site-Pakete \ _cffi_backend.pyd in das gleiche Verzeichnis wie die von pyInstaller erstellte Exe das Problem behoben.

Verwandte Themen