PyPi und Python3

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
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

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?
Bottle: Micro Web Framework + Development Blog
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Ich würde als Namen so etwas wie bottle-Py3 wählen.
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Du könntest auch einfach Weichen einbauen.
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Das ginge sogar, da das meiste eh nur geänderte stdlib namen sind und ich nur sehr wenige print() drin habe.
Bottle: Micro Web Framework + Development Blog
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

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?
Bottle: Micro Web Framework + Development Blog
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

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.
Bottle: Micro Web Framework + Development Blog
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

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?
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hat Guido denn seine Zeitmaschine nicht zur Verfügung gestellt?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Also ich bin ja der Meinung, dass die Zeitmaschine verlorengegangen ist...
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

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 :)
Bottle: Micro Web Framework + Development Blog
Antworten