Python 2 oder 3?

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
manni330
User
Beiträge: 2
Registriert: Donnerstag 19. Dezember 2013, 21:03

Hallo,

nach ein paar Jahren "Python-Abstinenz" möchte ich nun endlich wieder programmieren.

Beruflich stehen kleinere technische Berechnungsprogramme an, einschließlich GUI (Tkinter). Aber auch sonst möchte ich wieder etwas mit Python herumprogrammieren.

Nun, obwohl bestimmt schon oft durchgekaut, frage ich: ist Python 3.x sinnvoll?

Viele Side-Packages gibt es immer noch nur für Python 2.x: PIL, wxPython, pyOpenGL, py2exe, usw. Und viele Programme wie Blender benutzen im Hintergrund noch Python 2.x, genauso wie Ubuntu 12.4.

Lohnt sich da trotzdem der Umstieg?

Gruß
Manni
BlackJack

@manni330: Die Frage kannst Du für Dich nur selbst beantworten und bei den Kriterien weisst Du offensichtlich auch bescheid. Was erwartest Du denn jetzt als Antwort? Ich bleibe vorerst bei Python 2 und ich kann Dir fast garantieren das der nächste sagen wird er verwendet Python 3.

Edit: Blender verwendet AFAIK Python 3.
manni330
User
Beiträge: 2
Registriert: Donnerstag 19. Dezember 2013, 21:03

Danke für die schnelle Antwort.

Nunja, ich dachte, vielleicht hat Python 3 irgendwelche unschlagbaren Vorteile, die ich bisher nicht erkannt habe. Oder ist Python 3 vielleicht eine Verschlimmbesserung wie WinVista oder Win8? Mit Python 3 habe ich mich nämlich noch nicht so viel beschäftigt.
peddy
User
Beiträge: 121
Registriert: Montag 30. Juni 2008, 13:51

manni330 hat geschrieben:Oder ist Python 3 vielleicht eine Verschlimmbesserung wie WinVista oder Win8? Mit Python 3 habe ich mich nämlich noch nicht so viel beschäftigt.
Derartige Stimmen habe ich noch nicht gehört. Der Hauptgrund dürften fehlende Side-Packages sein.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

manni330 hat geschrieben:Viele Side-Packages gibt es immer noch nur für Python 2.x: PIL, wxPython, pyOpenGL, py2exe, usw. Und viele Programme wie Blender benutzen im Hintergrund noch Python 2.x, genauso wie Ubuntu 12.4.
PIL ist unmaintained, da würde man Pillow nutzen und das gibt es für Python 3. Und statt wxPython würde ich entweder ein GTK+-Binding oder ein Qt-Binding nutzen, von daher.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@manni330: Du führst hier zwar nicht-kompatible Pakete an, nennst aber kein externes Paket, welches du für dein Projekt tatsächlich benötigst. Und so sollte man IMHO auch vorgehen: Man sollte sich die Frage stellen, ob das eigene Vorhaben zwingend Python 2.x benötigt. Falls nicht, dann würde ich Python-3-tauglichen Code empfehlen, der ``__future__``-Importe, sowie ggf das ``six``-Modul für eine Abwärtskompatibilität zu Python 2.x nutzt.
BlackJack

Wobei meine Meinung zu Code der 2 und 3 unterstützt ist, dass er dass dann auch tatsächlich tun muss. Wenn man sich also `six` ins Boot holt, dann muss man auch den Mehraufwand betreiben das immer gegen 2 und 3 zu testen. Sonst macht es keinen Sinn.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dafür ist es ziemlich super dass es Services wie Travis-CI gibt, bei denen man unterstüzte Versionen der Runtimes angeben kann und die automatisch die Testsuite gegen alle Versionen ausführen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Mit tox gibt es auch noch eine Alternative ohne fremde Services.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Tox ist doch keine Alternative zu Travis, beide lösen recht unterschiedliche Probleme.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Das schon, aber zu dem angesprochenen Problem, testen gegen verschiedene Python Versionen, kann man nunmal beide verwenden.
Antworten