mit py2exe mit wxPython und Matplotlib

8

Ich versuche, eine .exe-Datei aus einem Python-Skript zu generieren, das wxPython und Matplotlib verwendet und es scheint unmöglich zu sein.

Die Importe, die ich mache (in Zusammenhang mit Matplotlib) sind die folgenden:

from numpy import *
import matplotlib
matplotlib.interactive(True)
matplotlib.use("WXAgg")
from matplotlib.figure import Figure
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigCanvas
from matplotlib.ticker import MultipleLocator

Hier ist die Datei setup.py, die ich verwenden möchte:

%Vor%

Ich bekomme immer "Matplotlib-Datendateien finden" nicht, nachdem ich versucht habe, die .exe-Datei auszuführen, die übrigens erfolgreich erstellt wurde.

Zusätzliche Informationen: Ich verwende Python 2.6, Matplotlib 0.99.3, wxPython 2.8.11.0 unter Windows XP

Vielen Dank im Voraus. Jede Hilfe wird geschätzt!

Prost, Andressa Sivolella

    
asivolella 27.06.2011, 04:34
quelle

4 Antworten

9

Versuchen Sie es mit PyInstaller und nicht mit py2exe. Es hat volle Unterstützung für wxPython und Matplotlib. Und es ist in aktiver Entwicklung, im Gegensatz zu py2exe.

    
Velociraptors 23.08.2011 19:50
quelle
1

Für einen einfachen Test können Sie einfach den Ordner 'mpl-data' in 'site-packages \ matplotlib' in Ihren App-Ordner kopieren. Soweit ich weiß, kann 'mpl-data' nicht in die einzelne ausführbare Datei gebündelt werden, daher muss diese in Ihrer Binärdistribution als Ordner enthalten sein.

Ich habe py2exe über GUI2Exe verwendet und konnte meine App einfrieren, die matplotlib + numpy / scipy + wx verwendet (also offensichtlich wxagg-Backend). Ich musste _tkagg nicht einschließen (was in der GUI2Exe-Standardeinstellung ausdrücklich ausgeschlossen ist, die für mich funktionierte).

    
otterb 14.02.2012 15:23
quelle
0

Es gibt eine Reihe von Problemen mit matplotlib.get_py2exe_datafiles (), so praktisch wie es wäre, wenn es funktioniert. Es ist auch eine gute Idee, das zu verwendende Backend anzugeben. Hier ist ein funktionierender Matplotlib-Import, den ich kürzlich verwendet habe:

%Vor%     
Kirk 26.07.2011 21:09
quelle
0

Py2exe Dokumentation erklärt die Ursache des Problems und gibt Lösungen. Es hat für mich funktioniert. (Matplotlib Version 1.1.0, Python 2.7)

Ссылка

Da ich kein Privileg habe, andere Antworten zu kommentieren oder zu bewerten, muss ich meine eigene schreiben. Kirks Antwort war die wertvollste Hilfe für mich. PyInstaller könnte ein Workaround sein (habe es nicht getestet), aber ist definitiv nicht die technische Lösung für das Problem!

%Vor%     
Rv F 23.10.2013 11:16
quelle