Frage

Ich habe eine Standard-Setup-Skript für py2exe mit dem ich PyQt-basierten Anwendungen in Windows-EXE-Dateien bündeln.

Heute habe ich versucht, ein einfaches Skript, das die PyQwt Modul verwendet, und es scheint nicht zu funktionieren. py2exe läuft in Ordnung, aber wenn ich die .exe erstellt es ausführen, es Dumps folgendes in eine Protokolldatei und läuft nicht:

Traceback (most recent call last):
  File "qwt_test.pyw", line 5, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "PyQt4\Qwt5\__init__.pyo", line 32, in <module>
  File "zipextimporter.pyo", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading PyQt4\Qwt5\Qwt.pyd

Als ich in PyQt4\Qwt5\ im build\bdist.win32\winexe\collect-2.5 Verzeichnis suchen, Qwt.pyd ist definitiv da.

Ich kann nicht scheinen, etwas Sinnvolles Online in Bezug auf diesen Fehler zu finden. Was könnte es dazu führen? Danke.

War es hilfreich?

Lösung

py2exe ist nicht der einzige Weg, und vielleicht nicht der beste Weg, um gemeinsam exe-Dateien für Python-Anwendungen - insbesondere, es kaum, wenn überhaupt unterstützt pyqt. Bitte, ich flehe Sie Besuche PyInstaller , die über PyQt weiß (und Linux und Mac, sollte Sie kümmern ...) - so stellen Sie sicher, dass Sie die SVN Kopf der Kasse, nicht die „freigegeben“ Version, die zu diesem Zeitpunkt ernsthaft veraltet ist (ein Problem, das hoffentlich weg geht bald ...)

Andere Tipps

Einige Optionen:

  1. Versuchen Sie, mit dem py2xe bundle_files options spielen (3, 2, 1) (vor allem, wenn man sie alle in einer großen Bibliothek zip setzen, einige DLLs nicht gefällt das).
  2. Stellen Sie sicher, dass eine Kopie von msvcp71.dll unter Windows existiert \ system32 oder in dem Verzeichnis Ihrer ausführbare Datei.
  3. Versuchen Sie, die DLL ohne explizit (add Qwt.pyd zur dll_excludes Option und (nach dem Bau) kopiert Qwt.pyd (und _Qwt.pyd falls vorhanden) auf Ihren ausführbaren Pfad.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top