Seite 1 von 1
PyPi und Python3
Verfasst: Mittwoch 22. Juli 2009, 16:09
von Defnull
Ich würde Bottle gerne für Python2 und Python3 anbieten und pflege deshalb zwei Versionen des Quelltextes. Nun kann ich den Python3 Kram aber nicht im PyPi registrieren, da der Name 'bottle' ja bereits von der Python2 Version belegt ist. Wie mach ich das am besten?
Verfasst: Mittwoch 22. Juli 2009, 16:43
von DasIch
Ich würde als Namen so etwas wie bottle-Py3 wählen.
Verfasst: Mittwoch 22. Juli 2009, 17:26
von Dauerbaustelle
Du könntest auch einfach Weichen einbauen.
Verfasst: Mittwoch 22. Juli 2009, 22:02
von Defnull
Das ginge sogar, da das meiste eh nur geänderte stdlib namen sind und ich nur sehr wenige print() drin habe.
Verfasst: Freitag 24. Juli 2009, 10:29
von Defnull
Ich bin gerade dabei, Bottle mit Weichen gleichzeitig unter python 2 und python 3 zum laufen zu bekommen. 2.6 und 3.x funktioniert schon. Nun hab ich aber ein Problem:
Code: Alles auswählen
except SomeError, e: #works in 2.*
except SomeError as e: #works in 2.6 and 3.*
Damit müsste ich den Python2.5 Support fallen lassen, um 3.* Support zu bekommen. Gibts ne andere Lösung?
Verfasst: Freitag 24. Juli 2009, 10:46
von cofi
An der Syntax nicht, aber eventuell koenntest du 2.x und 3.xer Module schreiben
Code: Alles auswählen
if sys.version < (2, 6):
import exception2
else:
import exception3
Code: Alles auswählen
In [4]: sys.version_info
Out[4]: (2, 6, 2, 'final', 0)
In [5]: sys.version_info < (2,6)
Out[5]: False
In [6]: sys.version_info >= (2,6)
Out[6]: True
allerdings ist das auch nicht viel besser als ein 3.x Branch.
Verfasst: Freitag 24. Juli 2009, 11:02
von Defnull
Das mit den excep ist echt ärgerlich. Vor allem, weil es dafür kein __future__ import gibt. Alles andere wäre nämlich (bis auf ein paar imports, die man ja weichen kann) super unter 2.4-3.1 lauffähig.
Verfasst: Freitag 24. Juli 2009, 12:01
von birkenfeld
Defnull hat geschrieben:Das mit den excep ist echt ärgerlich. Vor allem, weil es dafür kein __future__ import gibt. Alles andere wäre nämlich (bis auf ein paar imports, die man ja weichen kann) super unter 2.4-3.1 lauffähig.
Wie hätte man in 2.4 oder 2.5 einen __future__-Import für Syntaxänderungen, die man erst zur Entwicklungszeit von 2.6 eingeführt hat, einbauen sollen?
Verfasst: Freitag 24. Juli 2009, 12:04
von Leonidas
Hat Guido denn seine Zeitmaschine nicht zur Verfügung gestellt?
Verfasst: Freitag 24. Juli 2009, 12:07
von birkenfeld
Also ich bin ja der Meinung, dass die Zeitmaschine verlorengegangen ist...
Verfasst: Samstag 25. Juli 2009, 17:57
von Defnull
Ich hab mich jetzt doch dazu durch gerungen, den Support für Python <= 2.5 fallen zu lassen und dafür lieber auf 2.6+ und 3.x zu setzen. WSGI Frameworks für 2.x gibts eh genug, für 3.x aber noch kaum welche.
Die aktuelle GitHub Version läuft nativ unter 2.6, 3.0 und 3.1. Mein Test-Framework testet bereits alle drei Python-Versionen fehlerfrei.
Forks, die Bottle 2.5 kompatible halten, sind natürlich willkommen

Ich selbst hab aber keine Lust und Zeit, zwei verschiedene Versionen zu pflegen.
Die Zeit wird lieber in eine bessere Unterstützung für Middleware und multi-application Umgebungen gesteckt
