2010-04-02 8 views
10

Ich habe Python seit einiger Zeit gelernt. Während ich dieses "Lern-Python" -Unterfangen begann, beschloss ich, die neueste und beste Version von Python 3.1 zu lernen. Ich bedauere diese Entscheidung jetzt, weil ich meine Hände auf einige der Python-Web-Entwicklung Frameworks versuchen wollte & es sieht aus wie viele von ihnen nicht unterstützen 3.1 noch & es sieht aus wie es könnte Jahre dauern, um die neue Version von Python insbesondere Django zu unterstützen und TurboGears. Das ist wirklich enttäuschend. Also, SO - Nutzer, haben Sie eine Empfehlung für ein Webframework für mich, das auf 3.1 läuft und einige der modernen (ich schätze, ich werde nie lernen ;-)) Web Framework Funktionen wie MVC/ORM/URL Routing/Caching etcPython Web-Entwicklungs-Framework für Python 3.1 Benutzer

.
+0

Ich denke das ist die gute Frage, obwohl ich dich für python2 vorschlüge. 7. +1 – YOU

+0

Es wird kommen, aber ja, Webdev ist noch nicht in Py3k. Es ist enttäuschend und frustrierend; Wir haben noch nicht einmal einen WSGI-Standard, der noch funktioniert. – bobince

Antwort

1

Python 2.6 und Python 3.1 sind wirklich nicht so verschieden, ich schlage einfach vor, dass Sie beides lernen, besonders da beide Zweige von Python eine Zeit lang koexistieren ... also lernen Sie am besten die kleinen Unterschiede. Das Dokument "What's New in Python 3.0" erklärt die meisten Unterschiede zwischen 2.6 und 3.0.

5

Wie wäre es Python2.7 versuchen?, viele von Python 3.x Funktionen vor kurzem auf 2,7 zurückportiert, wie OrderedDict, schneller io-Module, Set Comprehensions, dict Comprehensions, etc ...

Und Python 2.7 läuft überhaupt kein problem mit django 1.2 trunk version meiner erfahrung nach.

Meiner Meinung nach braucht das Erlernen eines neuen Frameworks mehr Zeit als das Wechseln von Python2.x zu Python3.x, also wähle ein Framework und benutze einfach python 2.x und wechsle es zu 3.x wenn die Zeit gekommen ist .

+1

Sehr richtig über den Unterschied in der Zeit, ein anderes Framework zu lernen, als von Python 2.x auf 3.x zu wechseln – Echo

3

Wie die anderen würde ich vorschlagen, dass Sie mit Python 2.6.x beginnen - Python 2.7 wird diesen Sommer veröffentlicht, obwohl Sie heute eine Alpha oder Beta-Version greifen können.

Obwohl Python 3.x ist rückwärts unvereinbar mit 2.x ist Python Syntax nicht unkenntlich sein würde ... so ziemlich alles ist auf 2.x sehr ähnlich, aber es ist einfach, den Code zu brechen, wenn print ändert sich von einer Anweisung zu einer Funktion. Mach dir also keine Sorgen um Python 3. Wie andere bereits erwähnt haben, können Sie sofort mit vielen Web-Frameworks beginnen, die in Python 2.x funktionieren.

Auch, nur wegen der Nummerierung, nicht getäuscht werden in der Annahme, dass Python 2 in irgendeiner Weise veraltet ist, noch können Sie die Timeline seriell folgen. Mit anderen Worten, Python 2.7 ist neuer als Python 3.0 und 3.1. (3.2 wird nicht vor Ende dieses Jahres erscheinen.) Auch hier wurde Python 2 NICHT EOL'd - sowohl 2.x als auch 3.x werden aktiv entwickelt.

Die industrielle Welt läuft immer noch auf Python 2.x; Das Erscheinen von 3.x erinnert uns daran, dass die nächste Generation hier ist, und zu diesem Zeitpunkt sollten alle untergeordneten Infrastrukturen und Frameworks mit ihrer Portierung beginnen, damit wir alle irgendwann migrieren können.

Wenn Sie mehr über die Beziehungen zwischen Python 2, Python 3 und den Änderungen/Unterschieden zwischen den beiden sowie der Zeitleiste und Migration erfahren möchten, können Sie diesen Online-Artikel, den ich Anfang dieses Jahres schrieb, lesen:

„Python 3: Die Entwicklung einer Programmiersprache“
http://www.informit.com/articles/article.aspx?p=1328795

ich habe auch einen Vortrag zu diesem selben Thema bei PyCon im Februar 2010.Sie können das Video zugreifen und die Folie preso hier:
http://us.pycon.org/2010/conference/schedule/event/29/

1

Es ist (sind), eigentlich ein Django-Port Py3k.

ich auch ganz gut erinnern, kann auf der django-Entwickler-Mailingliste py3k, einen Thread zu einem Projekt der Universität von Portierung Django gelesen zu haben, aber ich kann den Faden im Moment nicht finden .

EDIT Oh hier ist es:

https://bitbucket.org/fiji/django-3k/

Das Projekt von Studenten der Universität von Toronto führen wird. :-)

EndEdit

Abfragen von so etwas wie "Django py3k Port" bringt einige nützliche Ergebnisse auf.

Schauen Sie auch bei diesen URLs:

2

CherryPy 3.2 (noch gearbeitet wird) wird

Flasche auf Python 3.x können auch laufen auf Python 3.x nach der Verwendung von 2to3 darauf. Einfach zu tun und es funktioniert. Bottle ist jedoch kein vollständiges Framework, sondern einfach zu verwenden.

Edit:

ich verwendet habe, Flasche in Python 3.1, 3.1 stackless Python für ein Spiel spezifisch zu sein, dass ich langsam arbeite. Aber bei der Arbeit benutze ich nur Python 2.6 und bald werde ich Webpy verwenden.

Die Seite, an der ich arbeite, ist in PHP, aber wenn ich ein neues Feature hinzufügen muss, das ich leicht von allen PHP-Code trennen kann, werde ich es in Python tun. Obwohl ich fast jeden Tag mit PHP arbeite und Python nur ein paar Mal im Monat benutze, kann ich Dinge in Python schneller erledigen als PHP :)