Idle versus ?

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
hypnoticum
User
Beiträge: 132
Registriert: Dienstag 15. März 2011, 15:43

Hallo,
ich habe folgenden Code in Eclipse ausgeführt und die erzeugte Datei bleibt ohne Inhalt -
lasse ich aber das Ganze mit Idle laufen bekomme ich eine tadellose Datei.
In den Projekteigenschaften ist als Interpreter "C:\Python26\python.exe" eingetragen.
Der Idle Pfad wurde bei der PythonXY-Installation unter "C:\Python26\Lib\idlelib\idle.bat" angelegt und die Datei hat den angefügten Inhalt.
WO IST DER UNTERSCHIED?
bzw was muss ich machen, damit ich in eclipse auch eine korrekte datei bekomme?

@echo off
rem Working IDLE bat for Windows - uses start instead of absolute pathname
start idle.pyw %1 %2 %3 %4 %5 %6 %7 %8 %9

Code: Alles auswählen

import Gnuplot
from numpy import *

x = linspace(0,10,31)
y = x**2
g = Gnuplot.Gnuplot()
d = Gnuplot.Data(x, y)
g.plot(d)
g.hardcopy(filename = 'H:/data.eps', terminal = 'postscript', mode = 'eps', color = 1)
print "Done"
BlackJack

@hypnoticum: `Gnuplot`-Exemplare haben eine `close()`-Methode, versuch die mal.
hypnoticum
User
Beiträge: 132
Registriert: Dienstag 15. März 2011, 15:43

@BlackJack:
ich habe am ende des codes die Zeile "g.close()" eingefügt, ohne dass sich was ändert, oder wie war das gemeint?
Wenn ich nach dem hardcopy Aufruf die folgende Zeile einfüge klappt es (nur will ich nicht jedes Datei erst manuell bestätigen)

Code: Alles auswählen

raw_input("Press Enter")
BlackJack

@hypnoticum: Woran merkst Du denn dass die Datei keinen Inhalt hat? Per Hand oder versuchst Du die Datei sofort nach dem Erstellen mit einem Programm weiter zu verarbeiten? `Gnuplot` ist für so etwas unbrauchbar, weil da mehr oder weniger beliebige „Bedenkzeiten” auf der ``gnuplot``-Seite entstehen können, die man von der Python-Seite nicht zuverlässig abfragen kann. Wenn Du einen Plot absetzt, dann geht das Python-Programm sofort weiter, während der ``gnuplot``-Prozess noch am berechnen der Grafik ist.
hypnoticum
User
Beiträge: 132
Registriert: Dienstag 15. März 2011, 15:43

@ BlackJack:
wenn die Datei erfolgreich geschrieben wurde öffne ich sie nach Beendigung des Scripts manuell mit Ghostview und bekomme den Graphen angezeigt.
Im anderen Fall sehe ich nur eine leere Seite.
Ausserdem ist die Datei 20kB groß, falls nichts geschrieben wurde wird eine Datei mit 0kB erzeugt.

wenn ich einen time.sleep() einfüge klappt es ebenfalls.
kennt jemand eine Möglichkeit, die erfolgreiche Erzeugung der Datei zu pollen, oder wie geht man da am besten vor?
BlackJack

@hypnoticum: Am besten etwas anderes als das `Gnuplot`-Modul verwenden. Das hat eben genau diese Probleme.
hypnoticum
User
Beiträge: 132
Registriert: Dienstag 15. März 2011, 15:43

@BlackJack: danke für den Hinweis

Ich hatte zuvor "import matplotlib.pyplot as plot" verwendet.
Doch aus irgendeinem Grund kam dort plötzlich der Fehler "ImportError: Warning: formlayout requires PyQt4 >v4.3" (Obwohl ich PythonXY verwende)
Da ich keine Ahnung hatte, was das sollte und ich gnuplot ohnehin mal ausprobieren wollte habe ich diesen Ansatz gewählt.
jetzt habe ich das alte Problem oder das neue. wie schön.
Langsam habe ich das Gefühl mit Python steht man ständig in der Sch...
Anstatt mich um die eigentlichen Probleme zu kümmern habe ich ständig mit irgendwelchem Kram zu tun
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Steht dir ja frei was anderes zu nutzen...

Aber matplotlib sollte eigentlich anständig paketiert sein, falls du Probleme hast solltest du einen Bugreport bei deiner Distribution einschicken.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
hypnoticum
User
Beiträge: 132
Registriert: Dienstag 15. März 2011, 15:43

@Leonidas:
schon OK, bin nur manchmal etwas genervt.

Ich habe herausgefunden, dass der Fehler
"ImportError: Warning: formlayout requires PyQt4 >v4.3"
beim Ausführen von
"import matplotlib.pyplot as plot"
von der aktualisierten Qt-Version verursacht wurde.

Wenn man den Inhalt aus dem "C:\Python27\Lib\site-packages\PyQt4\bin" Ordner in den übergeordneten "C:\Python27\Lib\site-packages\PyQt4" verschiebt bzw. kopiert lassen sich die Module wieder importieren, die zuvor nicht gefunden wurden.
Antworten