Wie starte ich Python3 Programme

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
dopevanjoint
User
Beiträge: 3
Registriert: Sonntag 9. Oktober 2011, 08:31

Hallo leute

Ich habe Python3 auf meinen Linux installiert
wenn ich jetzt mit IDLE ein Programm schreibe
läuft dass auch in der IDLE konsole
aber wenn ich es normal starten möchte
kommt das bei raus

dope-Linuxmint12 dope # python3.2 '/home/dope/Dokumente/test.py'
File "/home/dope/Dokumente/test.py", line 1
Python 3.2.2 (default, Sep 5 2011, 21:17:14)
^
SyntaxError: invalid syntax

Aber dass Programm läuft in IDLE

Hier der code

Code: Alles auswählen

from time import *
asctime()
was kann ich machen`?
BlackJack

@dopevanjoint: Der gezeigte Code entspricht nicht dem, den Du ausführst. In der Datei hast Du anscheinend den Inhalt der IDLE-Konsole abgespeichert und keinen Programmquelltext.
dopevanjoint
User
Beiträge: 3
Registriert: Sonntag 9. Oktober 2011, 08:31

Und wie muss ich Vorgehen das Python 3 das Programm startet?
Benutzeravatar
daemonTutorials
User
Beiträge: 171
Registriert: Sonntag 6. Februar 2011, 12:06
Kontaktdaten:

Du öffnest eine neue Datei und gibst deinen Code ein, mit einer Modifikation:

Code: Alles auswählen

#!/usr/bin/env python3.2

from time import *
asctime()
Und wenn du es auch auf der Konsole(der echten) ausgeben willst, mache folgendes:

Code: Alles auswählen

#!/usr/bin/env python3.2

from time import *
print(asctime())
Danach kannst du die Datei erstmal ausführbar machen. "chmod +x datei.py" wenn es nicht schon so ist.

Jetzt starte es:

Code: Alles auswählen

~$ python3.2 asctime.py
Fertig!

Maik
LG Maik
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

daemonTutorials hat geschrieben:Danach kannst du die Datei erstmal ausführbar machen. […]

Jetzt starte es:

Code: Alles auswählen

~$ python3.2 asctime.py
Du brauchst weder Shebang, noch musst du eine Datei ausführbar machen, damit du sie mit

Code: Alles auswählen

python3.2 dateiname
ausführen kannst. Das ist nur nötig, wenn du die Datei über

Code: Alles auswählen

./dateiname
starten willst.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Und Python 3.2 hartzukodieren ist auch Unsinn. Python 3 sehe ich noch ein, weil das aufwährtskompatibel ist, aber warum schließt du denn Python 3.3 schon aus?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@Leonidas: Kommt es nicht immer darauf an was als Standardpython beziehungsweise ``python3`` installiert ist? Wenn sich hinter ``python3`` ein Python 3.1 verbirgt, man mit ``python3.2`` aber explizit ein Python 3.2 starten kann, dann könnte das schon Sinn machen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Kommt es nicht immer darauf an was als Standardpython beziehungsweise ``python3`` installiert ist? Wenn sich hinter ``python3`` ein Python 3.1 verbirgt, man mit ``python3.2`` aber explizit ein Python 3.2 starten kann, dann könnte das schon Sinn machen.
Schon, das macht aber höchstens im Fall von Python 2 Sinn, wo ``python`` dann Python 2.6 ist und ``python2.7`` dann 2.7, weil die Distribution das zusätzlich anbietet. Und inzwischen ist ``python`` bei den meisten nun eh 2.7. Im Fall von Python 3 macht es noch weniger Sinn alte Versionen auszuliefern, weil das Standard-Python dann eh meist Python 2.7 ist, und dementsprechend unwarscheinlich finde ich dass ``python3`` 3.1 sein sollte und nicht eh 3.2 oder was sonst gerade das aktuelle ist. Wenn man ``python3.2`` hartcodet fliegt das hingegen auf die Nase wenn 3.3 erscheint. Im Fall von Arch Linux ist das dann etwa "sofort", weil die keine alten Python-Versionen offiziell anbieten. Da ist es IMHO sinnvoller ``python3`` zu sagen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Leonidas hat geschrieben:Im Fall von Arch Linux ist das dann etwa "sofort", weil die keine alten Python-Versionen offiziell anbieten. Da ist es IMHO sinnvoller ``python3`` zu sagen.
In Arch ist doch leider `python` Python 3 und `python2` Python 2.7 - oder verstehe ich Dich hier falsch?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hyperion hat geschrieben:
Leonidas hat geschrieben:Im Fall von Arch Linux ist das dann etwa "sofort", weil die keine alten Python-Versionen offiziell anbieten. Da ist es IMHO sinnvoller ``python3`` zu sagen.
In Arch ist doch leider `python` Python 3 und `python2` Python 2.7 - oder verstehe ich Dich hier falsch?
Das ist für die Diskussion hier aber völlig unerheblich und auch in Arch sind Python 2 und Python 3 unter ``python2`` respektive ``python3`` zu finden. An keiner Stelle habe ich empfohlen ``python`` ohne eine Versions^WGenerationsnummer zu verwenden, somit sollte das unter jeder Distribution relativ gut funktionieren.

Gut, man kann als beispiel Debian vor einigen Jahren bringen, die etwa Python 2.3 hatten, Python 2.4 als Standard-Python und Python 2.5 zusätzlich, als eine Art Preview dabei hatten. Aber selbst dort wird das nicht mehr passieren, denn Python 2.7 ist eh das letzte 2.x-Release, somit wird es keine "Preview"-Releases geben.

Und so ganz nebenbei finde ich, dass ``python`` = ``python3`` auf Arch Linux gar nicht mal so schlecht. Natürlich nutzen die meisten Programme Python 2.x, aber die funktionieren ja immer noch :)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Leonidas hat geschrieben: Das ist für die Diskussion hier aber völlig unerheblich und auch in Arch sind Python 2 und Python 3 unter ``python2`` respektive ``python3`` zu finden.
Ah... das wusste ich gar nicht - also, dass `python3` auch existiert.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten