pyplot.figure und py2exe

Fragen zu Tkinter.
Antworten
MikeJey
User
Beiträge: 5
Registriert: Sonntag 4. März 2018, 13:10

Dienstag 16. Oktober 2018, 20:41

Liebe Community,

ich möchte mein Programm in einer exe mit py2exe umwandeln. Alles klappt sehr gut, nur gibt es ein Problem. Wenn ich einen Plot mit auf einer Canvas anzeigen möchte, nutze ich den Befehl:

Code: Alles auswählen

self.canvas = FigureCanvasTkAgg(fig, root)
self.canvas.show()
self.canvas.get_tk_widget().pack()
Logischerweise muss ich vorher ein "fig" definieren und "root" ist ein vordefiniertes Window.

Code: Alles auswählen

fig = pyplot.figure(figsize=(6,3), dpi=100)
Das klappt soweit ganz gut, wenn ich in der shell von spyder arbeite. Wenn ich eine exe mit py2exe erstellt habe, stürzt mit das Fenster ab (ohne jegliche Fehlermeldung!), wenn diese "fig" per Buttonclick angezeigt werden soll.

Durch Trial and Error habe ich herausgefunden, dass allein die Definition einer figure (fig = pyplot.figure()) Grund ist das Fenster abstürzen zu lassen.

Ich habe das Problem mehrmals gegoogelt und bin zu keiner Lösung gekommen. Gib es noch andere Methoden figures (wo ein Diagram drauf geplottet sind) auf einer Tkinter-Oberfläche anzeigen zu lassen ?
(Ich vermute iwie liegt auch das Problem, dass sobald eine figure definiert ist, diese figure auch immer in der spyder-shell angezeigt wird (wenn ich in der Spyder-Shell arbeite). Damit kommt die exe nicht klar, eine figure in einer shell anzeigen zu müssen, deshalb stürtz der ab?) --> (Kann man dies unterdrücken, dass definierte figures nicht in der Shell angezeigt werden sollen?) --> (Ich hoffe ich habe diesen Gedanken nicht allzu konfus erläutert :))
Sirius3
User
Beiträge: 8579
Registriert: Sonntag 21. Oktober 2012, 17:20

Mittwoch 17. Oktober 2018, 07:11

woher kommt denn dieses `root`?
Programme sollten generell erst in einem normalen Konsolenfenster (cmd.exe), dann sieht man auch den Fehler mit komplettem Traceback und muß nicht per Trial and Error herumprobieren. Wie lautet die Ausgabe dort?
Antworten