ubuntuusers.de

Python 2 vs. Python 3

Status: Gelöst | Ubuntu-Version: Ubuntu 10.10 (Maverick Meerkat)
Antworten |

Miness

Avatar von Miness

Anmeldungsdatum:
12. Februar 2011

Beiträge: Zähle...

Wohnort: Schweiz

Guten Abend zusammen,

ich lese mich im Moment gerade etwas ins Thema Python ein und bin auf den Hinweis gestossen, dass Python 2.x und Python 3.x doch ziemlich unterschiedlich sind und Python 3 auch nicht abwärtskompatibel zu sein scheint. Zudem gibt es laut dem Artikel hier auch viele und zum Teil wichtige Module, die Python 3 noch gar nicht unterstützen. Und Ubuntu 10.10 hat meines Wissens auch erst Python 2.6 vorinstalliert.

Was sind eure Erfahrungen mit den beiden Python-Versionen, gibt es tatsächlich viele Library-Funktionen, die noch nicht unterstützt werden? Und wenn ich mit Python 3 beginnen würde, ist das "Umdenken" zu Python 2 aus eurer Sicht anspruchsvoll, wenn ich trotzdem mal Anwendungen bzw. Scripts darin schreiben möchte? Ich weiss, dass es auch die Möglichkeit gäbe einen Converter einzusetzen, um zwischen den beiden Versionen hin und her zu konvertieren. Wie sieht es damit aus?

Danke für eure Antworten und Tipps!

diesch Team-Icon

Avatar von diesch

Anmeldungsdatum:
18. Februar 2009

Beiträge: 5072

Wohnort: Brandenburg an der Havel

Ich würde erst mal mit 2.x anfangen, denn

  • es gibt tatsächlich eine Menge Bibliotheken, die nicht oder nur unzureichend mit 3.x funktionieren

  • Du kannst für 2.6. deutlich mehr Bibliotheken über das Paketsystem von Ubuntu installieren

  • für 2.x gibt es deutlich mehr Dokumentation

  • der Umstieg von 2.x nach 3.x ist gut dokumentiert, für 3.x nach 2.x fällt mir spontan nichts brauchbares ein

  • Einen Konverter für 3.x nach 2.x gibt es meines Wissens nach nicht

  • Das in Ubuntu 10.10 standardmäßig benutzte 2.6.6. unterstützt schon die meisten Neuerungen von 3.0

Miness

(Themenstarter)
Avatar von Miness

Anmeldungsdatum:
12. Februar 2011

Beiträge: Zähle...

Wohnort: Schweiz

Okay, vielen Dank! Dann werde ich sicher mit Python 2.x beginnen.

Den genannten Converter habe ich hier gefunden, der scheint aber "more-or-less complete" zu sein - Python 2.x zu verwenden ist also sicher erstmal besser. 😉

Kennst du / kennt ihr noch irgendwelche guten Grundlagen-Tutorials (ausser dem "Offiziellen" auf python.org), welche empfehlenswert sind? Oder ist das offizielle Tutorial schon das beste aus eurer Sicht?

Danke noch einmal!

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

A Byte of Python soll ganz gut sein. Auf jeden Fall lass die Hände weg vom OpenBook von Galileo oder den div. Derivaten 😉

Ach ja, Learn Python the hard way ist für blutige Anfänger sicherlich auch zu empfehlen.

Miness

(Themenstarter)
Avatar von Miness

Anmeldungsdatum:
12. Februar 2011

Beiträge: 15

Wohnort: Schweiz

Wow, "A Byte of Python" sieht schon mal ganz gut aus auf den ersten Blick. Der Umfang ist mit etwas über 100 Seiten angemessen und das Buch scheint viel Wert auf praktische Beispiele zu legen.

Dann werde ich mich wohl demnächst da durchackern, danke! 😉

Hier noch die Links für andere Interessierte:

- "A Byte of Python" in Englisch (original)

- "A Byte of Python" in Deutsch

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

ich lese mich im Moment gerade etwas ins Thema Python ein und bin auf den Hinweis gestossen, dass Python 2.x und Python 3.x doch ziemlich unterschiedlich sind

Nee, nicht wirklich. Aber es gibt an einigen Stellen essentielle Unterschiede.

und Python 3 auch nicht abwärtskompatibel zu sein scheint.

Genau. Ebenso laufen aber Python 2.x Programme ggf. nicht auf Python 3

Zudem gibt es laut dem Artikel hier auch viele und zum Teil wichtige Module, die Python 3 noch gar nicht unterstützen.

Richtig. Das ist der eigentlich entscheidende Punkt: Wenn du "reines" Python verwendest, dann kannst du bedenkenlos 3 nehmen. Ist aber eher unwahrscheinlich, weil es schon recht komfortable ist, eines oder mehrere der vielen Module zu nehmen. Was für 3 noch fehlt sind z.B. die meisten Datenbank Anbindungen oder einige "große" Webframeworks. Wie es bei GUI-Anbindungen ist (GTK, Qt...) kann ich dir aus dem Kopf nicht sagen.

Und Ubuntu 10.10 hat meines Wissens auch erst Python 2.6 vorinstalliert.

Es ist davon auszugehen, dass das auch nicht bei Natty+1 und +2 so ist. Die Distros werden erst umstellen, wenn ein Großteil der Module bzw. alle Module, die die Distro selber braucht, auf Python 3 portiert sind.

Gruß, noisefloor

Miness

(Themenstarter)
Avatar von Miness

Anmeldungsdatum:
12. Februar 2011

Beiträge: 15

Wohnort: Schweiz

Danke, du hast meine Entscheidung für Python 2.x gerade noch einmal bestätigt.

Wo werden denn eigentlich Python-Module in Ubuntu genau verwendet? Sind einzelne Programme in Python geschrieben, oder gar das OS teilweise selbst?

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

Wo werden denn eigentlich Python-Module in Ubuntu genau verwendet?

Z.B. für Teile von Ubuntu One, Apport, bestimmte Sachen im GNOME Panel etc. Wenn du es genau wissen willst, dann musst du dir mal ein frisches Ubuntu installieren und schauen, welche Pakete mit dem Namensschema python-* installiert sind.

Sind einzelne Programme in Python geschrieben, oder gar das OS teilweise selbst?

Programme, Tools, Applets etc. Linux an sich ist in C geschrieben.

Irgendwo habe ich auch mal gelesen, dass C und Python die beiden "offiziellen" Entwicklersprachen für Ubuntu (bzw. bei Canonical) sind. Allerdings finde ich die Quelle nicht mehr...

Gruß, noisefloor

Miness

(Themenstarter)
Avatar von Miness

Anmeldungsdatum:
12. Februar 2011

Beiträge: 15

Wohnort: Schweiz

Z.B. für Teile von Ubuntu One, Apport, bestimmte Sachen im GNOME Panel etc. Wenn du es genau wissen willst, dann musst du dir mal ein frisches Ubuntu installieren und schauen, welche Pakete mit dem Namensschema python-* installiert sind.

Danke, da hab ich als Linux-Neuling grade wieder was dazugelernt! 😉 Werde ich machen.

Irgendwo habe ich auch mal gelesen, dass C und Python die beiden "offiziellen" Entwicklersprachen für Ubuntu (bzw. bei Canonical) sind. Allerdings finde ich die Quelle nicht mehr...

Das mit den "offiziellen" Entwicklersprachen habe ich auch mal gelesen, und zwar hier im Wiki. Ich nehme mal an, dass du das meinst?

Developer92 Team-Icon

Avatar von Developer92

Anmeldungsdatum:
31. Dezember 2008

Beiträge: 4101

Aus eigener Erfahrung würde ich dir im Moment zu Python 2.x raten. Datenbanken und GUIs lassen sich damit schön realisieren, es ist lang genug getestet und läuft stabil. Zudem ist Python 2.x IMHO noch Standard, auch bei Ubuntu.

Ich entwickle parallel noch für Python 3.x und konnte bisher kaum relevante Unterschiede feststellen, weshalb dann auch ein Umstieg auf die neue Version nicht schwer fällen dürfte.

Auf lange Sicht wird zwar sowieso v3.x Standard, aber egal.

Am Ende musst du entscheiden, aber ich empfehle für den Einstieg v2.x

mfg

EDIT: Ist nicht Inkscape zum Großteil in Python entwickelt?

Fjunchclick

Anmeldungsdatum:
18. Februar 2010

Beiträge: 550

Mir fallen da noch QuodLibet und Streamtuner2 ein.

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

TDeveloper schrieb:

Aus eigener Erfahrung würde ich dir im Moment zu Python 2.x raten. Datenbanken und GUIs lassen sich damit schön realisieren, es ist lang genug getestet und läuft stabil. Zudem ist Python 2.x IMHO noch Standard, auch bei Ubuntu.

Speziell diese Themen lassen sich berPeits jetzt auch schon mit Python3 gut angehen. Vor allem im Webbereich gibt es zur Zeit noch eine Menge Barrieren, die wohl erst mit Python 3.2 anfangen werden zu fallen.

Miness

(Themenstarter)
Avatar von Miness

Anmeldungsdatum:
12. Februar 2011

Beiträge: 15

Wohnort: Schweiz

TDeveloper schrieb:

Aus eigener Erfahrung würde ich dir im Moment zu Python 2.x raten. Datenbanken und GUIs lassen sich damit schön realisieren, es ist lang genug getestet und läuft stabil. Zudem ist Python 2.x IMHO noch Standard, auch bei Ubuntu.

Na dann bin ich jetzt definitiv beruhigt, dass ich mich vorerst für das richtige Tutorial entschieden habe. 😉

Lysander schrieb:

Vor allem im Webbereich gibt es zur Zeit noch eine Menge Barrieren, die wohl erst mit Python 3.2 anfangen werden zu fallen.

Okay, mit Python für's Web zu entwickeln habe ich vorerst sowieso nicht vor, kommt vielleicht später dann.

Danke euch!

XPS36

Anmeldungsdatum:
7. März 2010

Beiträge: 116

Hallo.

Falls Du Python für die neue Version von Blender (raytracer, Version 2.5 Beta) verwenden willst, benötigst Du jedoch Python 3.x. Ich musste alle meine Skripte umschreiben. Das ging jedoch recht gut. Folgendes hat mir geholfen: http://docs.python.org/release/3.0.1/whatsnew/3.0.html

PS: Zum Nachschlagen von Funktionen und Diversem finde ich folgenden site ganz gut: http://docs.python.org/

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Also zum dem Thema kann ich nur diesen Blogeintrag empfehlen: http://lucumr.pocoo.org/2011/1/22/forwards-compatible-python/

Armins Beiträge sind aber generell eh lesenswert 😉

Antworten |