Falsche future Importe in pyut Dateien

Probleme bei der Installation?
Antworten
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Hallo!
Ich hab mir mal pyut runtergeladen und alle Abhängigkeiten installiert. Nun wollt ich es über die pyut.pyw starten, jedoch passierte nichts. Als ich es mit IDLE ausgeführt habe, kam das:
from __future__ import division
SyntaxError: from __future__ imports must occur at the beginning of the file

Eigentlich verständlich, denn in der Datei steht vor dem import noch der Autor und die Version.
Aber wieso ist das so, das es nicht geht? Hab ich was falsches installiert?
Ich hab versucht den Fehler zu beheben, indem ich den Import nach vorne gezogen habe, aber da kam direkt die nächste Datei. Fast in jeder Datei scheint der import zu stehn, auch wo es nicht gebraucht wird.

Gruß, jj[/code]
BlackJack

Seit Python 2.5 darf vor diesem ``import`` kein Code mehr stehen. Bei 2.4 war's eine Warnung, jetzt ist es ein Fehler.

Weil Importe aus `__future__` die Syntax der Sprache verändern können, also zum Beispiel Schlüsselworte wie ``with`` aktivieren können, ist es einfach sauberer wenn dieser import als erstes steht. Sonst können Mehrdeutigkeiten auftreten. Blödes Beispiel:

Code: Alles auswählen

with = 42
from __future__ import with_statement
Das `with` wurde vom Compiler schon gesehen und die Zeile wird zu einer Zuweisung an den Namen `with` übersetzt und danach wird die ``with``-Anweisung aktiviert. Dann hätte die Zeile davor aber einen Syntaxfehler ergeben müssen.
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Toll! Naja, dann bringts ja doch noch was, das ich noch ne 24er Installation hab. Wenns damit geht, mal rauskramen...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

schlangenbeschwörer hat geschrieben:Toll! Naja, dann bringts ja doch noch was, das ich noch ne 24er Installation hab. Wenns damit geht, mal rauskramen...
Du kannst aber auch einfach die Datei editieren und ggf. dem Autor eine Nachricht schreiben, dass er in z´Zukunft bitte auch seinen Code anpasst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Leonidas hat geschrieben: Du kannst aber auch einfach die Datei editieren und ggf. dem Autor eine Nachricht schreiben, dass er in z´Zukunft bitte auch seinen Code anpasst.
Sehr schlau! Da bin ich sogar selbst drauf gekommen, aber nach ca. 10 Dateien oder so hatte ich keinen Bock mehr. Wie gesagt, das wird in fast jeder Datei verwand. Entweder öffnet man also alle Dateien und guckt nach, oder versucht nach jeder Änderung das Programm laufen zu lassen. Ich könnt natürlich auch schnell ein script hacken und drüberlaufen lassen...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

schlangenbeschwörer hat geschrieben:Ich könnt natürlich auch schnell ein script hacken und drüberlaufen lassen...
Du weißt gar nicht, wie sehr es mich reizen würde, mit sed und awk so etwas zusammenzuhacken, hauptsächlich weil ich awk noch nie benutzt habe :D Mal sehen ob ich heute ausreichend Zeit finde.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Gern überlass ich dir das. Ich hab eh genug zutun (das, was ich mit uml darstellen will). Sag bescheid, wenn dus fertig hast, dann lass ichs bei mir laufen. Ich hab jedoch ein paar bedenken, das das ein Weilchen brauchen könnte, so durch alle Dateien, öffnen, suchen, ggf. ändern, speichern, nächste ...
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Wenn die Zeilen bis zum future-Import in jeder Datei übereinstimmen, kannst du auch einen Patch erstellen und den auf alle Dateien anwenden.
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Da sind verschiedene Kommentare vor. Und sonst ist's glaub ich auch nicht immer gleich.
#cousin#
User
Beiträge: 25
Registriert: Mittwoch 18. März 2009, 22:56
Wohnort: Mannheim
Kontaktdaten:

gibt es inzwischen eine fertige Lösung für die Probleme mit Python 2.5?
BlackJack

Das sind keine Probleme mit 2.5 sondern mit Quelltext der nicht dafür geschrieben wurde. :-) Ich denke mal seit 2007, von da ist dieser Thread, kommt das nicht mehr all zu häufig vor. Und falls doch, hat man sich ja mittlerweile ein Skript geschrieben, das das behebt. Hatte ich damals sogar gemacht, aber ich find's gerade nicht wieder. Habe ich auch eeeewig nicht mehr gebraucht.
#cousin#
User
Beiträge: 25
Registriert: Mittwoch 18. März 2009, 22:56
Wohnort: Mannheim
Kontaktdaten:

das war mir schon bewusst, dass es an dem Code von pyUT liegt. Aber bevor ich nun anfange alle Dateien so zu ändern, dass es wieder Ausführbar ist, wollte ich wissen, ob es evtl. schon Jemand für dieses "Programm" gemacht hat.
Antworten