2017-08-15 1 views
0

(Ich habe dieses Problem bereits gelöst, aber es kostete mich zwei Wochen meiner Zeit und mein Arbeitgeber ein paar große, also teile ich es hier um einige arme Seele zu retten.)Gebündelte ausführbare Datei stürzt ohne Warnung beim Rendern von Plots

Meine Firma konvertiert unsere Anwendung von 32-Bit zu 64-Bit. Wir erstellen eine ausführbare Datei mit py2exe unter Verwendung der Option bundle = 2. Die ausführbare Datei stürzte ab, sobald sie versuchte, einen Matplotlib-Plot zu rendern.

Ausführungen:

Python == 2.7.13,

matplotlib == 2.0.0

numpy == 1.13.1,

py2exe == 0.6.10a1

Antwort

0

Ich verfolgt den Fehler in der numpy Bibliothek. Numpy ruft numpy.linalg._umath_linalg.inv() auf und das Programm wird abrupt ohne Fehlermeldung, Warnung oder Traceback beendet.

_umath_linalg ist eine .pyd Datei und ich entdeckte, dass diese besondere .pyd Datei von library.zip nicht aufgerufen wird nicht mag, das ist, wo py2exe es ausdrückt, wenn Bündel Option 2 oder 1.

Die Lösung mit Um numpy im py2exe-Setup-Skript auszuschließen, kopieren Sie den gesamten Paketordner in das Distributionsverzeichnis und fügen Sie dieses Verzeichnis dem Systempfad am Anfang des Haupt-Python-Skripts hinzu.

Verwandte Themen