Seite 1 von 1
Python Programm startet und schliesst sofort
Verfasst: Sonntag 17. Januar 2010, 16:24
von Qoo4real
hallo, ich habe ein python programm und seit ich windows 7 habe läuft es net mehr. Also wenn ich auf die datei blabla.py doppelklick mache öffnet sich die konsole und schliesst sofort wieder, weiss jemand woran es liegt oder muss ich etwas bei python beachten da ich jetzt windows 7 benutze ??
achso und früher hatte ich vista und da lief das python programm einwandfrei.
Verfasst: Sonntag 17. Januar 2010, 16:33
von Dav1d
öffne mal die Datei mit cmd (Start -> Ausführen -> cmd -> cd (zum Verzeichnis) -> xyz.py)
Und poste pls den Traceback
Verwendest du jetzt Python 3.X statt Python 2.X?
Verfasst: Sonntag 17. Januar 2010, 16:41
von jbs
Alternativ: <Alt> + <Rechtsklick> im Verzeichnis und dann Eingabeaufforderung auswählen.
Verfasst: Sonntag 17. Januar 2010, 16:42
von Qoo4real
also irgendwie ergibt die fehlermeldung keinen sinn . syntax error: invalid syntax
er sagt mir auch in welcher line das sein soll, nur habe ich nie was am programm verändert seit ich mein system umgestellt habe .
und ich benutze version 3.1 und habe diese auch davor benutzt
Verfasst: Sonntag 17. Januar 2010, 16:46
von jbs
Zeig einfach mal die komplette Fehlermeldung.
Verfasst: Sonntag 17. Januar 2010, 16:49
von Qoo4real
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. Alle Rechte vorbehalten.
C:\Users\Wadim>cd C:\Users\Wadim\Desktop\Uni 09-10\PRG 01\Blatt 1 bis 5\Blatt 3
C:\Users\Wadim\Desktop\Uni 09-10\PRG 01\Blatt 1 bis 5\Blatt 3>Spielmechanik.py
File "C:\Users\Wadim\Desktop\Uni 09-10\PRG 01\Blatt 1 bis 5\Blatt 3\Spielmecha
nik.py", line 38
print "Keinen Int übergeben"
^
SyntaxError: invalid syntax
C:\Users\Wadim\Desktop\Uni 09-10\PRG 01\Blatt 1 bis 5\Blatt 3>
Verfasst: Sonntag 17. Januar 2010, 16:56
von cofi
Wenn das vorher funktionierte, hast du vorher kein Python 3 benutzt, denn nur in pre-Python 3 ist das die korrekte Syntax.
Verfasst: Sonntag 17. Januar 2010, 16:56
von jbs
Sicher, dass auf deinem alten System Python 3.1 drauf war?
Ich denke eher es war eine aus der 2er Serie. print ist ab 3 eine Funktion und daher muss es `print("Keinen Int übergeben")` heißen.
Verfasst: Sonntag 17. Januar 2010, 16:58
von Qoo4real
so hey ich habe jetzt auch mal alle anderen programme die ich so habe getestet und die laufen alle nicht... es ist das gleiche problem console geht auf und schliesst sofort wieder man sieht es fast kaum so schnell schliesst das... und wenn ich die über dir eingabeaufforderung ansprechen will dann heisst auch wieder syntax error in irgendeiner zeile.... also scheint ein allgemines problem zu sein nicht nur mit dem einen programm
Verfasst: Sonntag 17. Januar 2010, 17:00
von Qoo4real
ok ich ändere mal alle print befehle um und guck obs dann geht danke schon mal für eure hilfe
Verfasst: Sonntag 17. Januar 2010, 17:02
von cofi
Nein, das solltest du nicht machen. Zwischen Python 2 und Python 3 liegen noch mehr Unterschiede. Warum willst du Python 3 benutzen, wenn es doch ganz klar vorher mit Python 2 funktionierte?
Verfasst: Sonntag 17. Januar 2010, 17:07
von Qoo4real
oh nein zu spät hab alle prints geändert aber es muss in 3.1 gewesen sein weil nur manche print befehle wwaren so --> print "hdhdh" der rest war mit klammern versehen
und das ist danach der fehler wenn die prints alle korrigiert wurden
C:\Users\Wadim\Desktop\Uni 09-10\PRG 01\Blatt 1 bis 5\Blatt 3>Spielmechanik.py
Einführung:
- Um das Spiel jederzeit zu verlassen, drücken Sie 'Strg + C'
- O fängt immer an
- Gewinnregel:
(X oder O) 4 mal in eine Diagonale, Horizontale oder Vertikale legen
Setzen Sie das Spielfeld
Traceback (most recent call last):
File "C:\Users\Wadim\Desktop\Uni 09-10\PRG 01\Blatt 1 bis 5\Blatt 3\Spielmecha
nik.py", line 450, in <module>
run()
File "C:\Users\Wadim\Desktop\Uni 09-10\PRG 01\Blatt 1 bis 5\Blatt 3\Spielmecha
nik.py", line 400, in run
matrix = setField()
File "C:\Users\Wadim\Desktop\Uni 09-10\PRG 01\Blatt 1 bis 5\Blatt 3\Spielmecha
nik.py", line 32, in setField
zeile = int(raw_input("Zeilen: ")) # Benutzereingabe
NameError: global name 'raw_input' is not defined
C:\Users\Wadim\Desktop\Uni 09-10\PRG 01\Blatt 1 bis 5\Blatt 3>
Verfasst: Sonntag 17. Januar 2010, 17:12
von cofi
Das ist noch einer der Unterschiede zwischen Python 2 und Python 3.
Um das mal klarzustellen: `print()` war auch in Python 2 gueltige Syntax (aber semantisch komplett falsch).
Dein Programm ist fuer Python 2 geschrieben, also benutze Python 2, oder konvertiere das nach Python 3, aber das geht nicht mit deinem derzeitigen Wissen und schon gar nicht mit halbherzigen Versuchen.
Verfasst: Sonntag 17. Januar 2010, 17:13
von BlackJack
@Qoo4real: Nein es muss nicht 3.1 gewesen sein. So etwas wie ``print ("hallo")`` ist auch in 2.x syntaktisch nicht überall falsch. Die Klammern sind da halt nur überflüssig.
`raw_input()` gibt es in Python 3 nicht mehr. Ein weiteres Indiz, dass Du vorher *nicht* 3.1 verwendet hast.
Ändere die ``print``-Anweisungen wieder zurück und installiert Dir ein aktuelles Python 2.
Verfasst: Sonntag 17. Januar 2010, 17:17
von jbs
Oder installiere 2.6 und setze ein ``from __future__ import print_function`` in deine Dateien ganz an den Anfang. So sparst du dir das ändern in alte Syntax.
Verfasst: Sonntag 17. Januar 2010, 17:17
von Qoo4real
oooh super ich hab jetzt python 2.xx drauf gemacht und es läuft wieder vielen dank für eure hilfe leute!!
Und ja mein wissen was python angeht is noch net so ausgeprägt aber ich arbeite dran.