Mayavi automatisieren: skript stürzt ab

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
thb83
User
Beiträge: 4
Registriert: Samstag 13. März 2010, 20:47

Hallo,

bin ziemlicher Anfänger in Python und versuche gerade ein paar 3D-Daten mit Mayavi 3.3.0 und Python 2.6.2 darzustellen. Um das zu automatisieren habe ich dieses Skript geschrieben (bzw. teilweise von Mayavi schreiben lassen :lol:) :

Hier das Skript:
http://paste.pocoo.org/show/189283/

Was das Skript macht:
Erst läd es eine fixe Structur und erstellt ein 3D Bild. Das ist quasi der Hintergrund.
Dann werden in einer Schleife nacheinander vier 3D-Strukturen geladen, zusammen mit dem Hintergrund aus verschiedenen Blickwinkeln gerendert, als PNG gespeichert und wieder gelöscht.

Also so:
Hintergrund laden
1. Struktur rendern, speichern und löschen
2. Struktur rendern, speichern und löschen
...
N. Struktur rendern, speichern und löschen

Leider stürzt es oft ab wenn ich die For-Schleife zu lang mache. 1 oder 2 Durchläufe schafft es, mehr gehen nicht. Wenn ich die Schleife aber von 3...4 laufen lasse geht es. Das Problem scheint also zu sein, dass sich irgendwie zu viele Daten ansammeln. Arbeitsspeicher ist aber genug da.

Sieht jemand ein Problem? Gibt es für Mayavi einen "cleanup" oder "reset" Befehl?

Gruß,
Thomas
Zuletzt geändert von thb83 am Samstag 13. März 2010, 21:51, insgesamt 1-mal geändert.
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Hallo Thomas und willkommen im Forum,

bitte verwende die Python-Code-Tags des Forums oder verwende einen Paste-Bin (z.B. http://paste.pocoo.org/), wenn der Code länger ist. Dein Code ist länger: Also bitte auslagern, weil die Forensoftware sonst schlapp macht.

Grüße
Gerrit
thb83
User
Beiträge: 4
Registriert: Samstag 13. März 2010, 20:47

Danke für den Tipp, ist erledigt.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Die Einrückung in Python-Code ist schon von entscheidender Wichtigkeit ;-)
Das Leben ist wie ein Tennisball.
thb83
User
Beiträge: 4
Registriert: Samstag 13. März 2010, 20:47

Ja, habe ich schon gelernt :o . Ist im Original auch ok (alles nach der loop um 1 Tab eingerückt) aber beim copy+paste verloren gegangen.
Das ist aber nicht das Problem, wie gesagt läuft das Skript ja manchmal.

Achso, noch kurz zur Art des Absturzes: Das ganze läuft unter Windows als Python(x,y) und es stürzt wirklich einfach ab, keine Fehlermeldung von Python, nur die Windows Meldung dass das Programm jetzt geschlossen werden muss.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Doch, das ist schon ein Problem. Wir können es nämlich nicht richtig lesen, was, in Verbindung mit langen, schlechten und unübersichtlichem Code, deine Chancen auf eine Antwort gegen Null streben lässt.
Das Leben ist wie ein Tennisball.
thb83
User
Beiträge: 4
Registriert: Samstag 13. März 2010, 20:47

So, hier nun nochmal Tabs:

http://paste.pocoo.org/show/189292/
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Das Einrücken enthält noch immer Fehler. Auch der Code selbst ist sehr chaotisch, hat häufig Wiederholungen und so seltsame Dinger wie ``import`` mitten im Quelltext. Ich nehme mal an, dass das zu einem großen Teil an der Aufzeichnung von MayaVi liegt.

Zu deinem Problem kann ich leider nicht viel sagen, da ich MayaVi nicht benutze. Das es keine Fehlermeldung gibt ist aber ungünstig. Hast du das Skript mal in der Konsole gestartet? Gibt es dann eine Fehlermeldung?

Grundsätzlich würde ich dir empfehlen dir das Python Tutorial anzuschauen, um mehr Hintergrundwissen zu bekommen. Damit kannst du das Skript dann etwas aufräumen, was die Chance erhöht, dass du hier Hilfe bekommst.

Grüße
Gerrit
Antworten