2008-09-06 9 views
14

Wenn ich ein Open Source-Projekt mit Python starten wollte, welche Version sollte ich verwenden, um sicherzustellen, dass die überwiegende Mehrheit der Benutzer es auf ihrem System verwenden kann?Welche Version von Python für maximale Kompatibilität verwenden

Ich bin die Art von Person, die schnell auf die nächste Version springt (was ich tun werde, wenn Python 3 herauskommt), aber viele Leute können konservativer sein, wenn ihre aktuelle Version gut zu funktionieren scheint. Welche Version würde den "Sweet Spot" treffen, aber trotzdem die neuesten und coolsten Sprachverbesserungen genießen?

Antwort

6

Wie Python in Art einer Übergangsphase in Richtung Python 3 mit Rückwärtskompatibilität Ich denke nicht, dass es eine gute Idee ist, nur Python 3 zu gehen. Basierend auf der time line wird es nach 2.6/3.0 im Oktober mindestens eine oder zwei der folgenden Versionen der 2.x-Serie geben.

Neben nicht Python 3 auf Ihrer Zielplattform hat, wird es einige Zeit, bis wichtige externe Python-Bibliotheken nimmt 3.

So portierten und nutzbar auf Python wie Matthew 2.4/2.5 Aufenthalt schlägt vor und hält die transition Plan zu Python 3 im Hinterkopf ist eine gute Wahl.

+2

Es ist interessant für mich, dass ab Juli 2010 das gleiche gilt, und dass sich nichts geändert hat. Vielleicht wäre die Version 2.7 der neue Ratschlag. –

4

Ich habe ein System mit weniger als 2,3 seit einiger Zeit nicht mehr gesehen. Meistens ist 2.4+ für die meisten Betriebssysteme, die ich jetzt verwende, standardmäßig installiert. 2.3 ist nur auf einem älteren Solaris-Rechner. Linux-Distributionen sind in der Regel 2.4+ haben, wie OS X.

IIRC der Fall ist, hat 2,4 viele der Merkmale 2.5 der Fall ist, aber nur nutzbar mit

from __future__ import * 
1

Sie können verschiedene Versionen von Python auf jedem Computer verwenden.

Codierung etwas neues, würde ich nichts weniger als python2.5 verwenden. Sie können apt-get install python2.5 auf Lager debian stabil tun.

Für Windows, mach dir keine Sorgen. Es ist sehr einfach, python2.5 msi zu installieren.

Wenn die Benutzer nicht belästigt werden können, können Sie eine ausführbare Datei mit py2exe bereitstellen (so einfach) und ein Installationsprogramm mit Inno-Setup (wieder einfach) erstellen, dann wird es wie eine Standard-Windows-Anwendung zu verwenden seine eigenen Python-DLLs, also muss Python nicht installiert sein.

Wie Peter sagte: Denken Sie an den Übergang zu 3.0, aber bauen Sie darauf noch nicht auf.

1

Python 2.3 oder 2.2, wenn Sie ohne die vielen hinzugefügten Module leben können (z. B. datetime, csv, logging, optparse, zipimport), SSL nicht verwenden und Standardwerte für True/False hinzufügen können.

2.4 hinzugefügt Dekorateure. Generatorausdrücke, reversed(), sorted() und die Subprozess- und Dezimal-Module. Obwohl diese alle schön sind, ist es einfach, Pythonic Code ohne sie zu schreiben (vorausgesetzt, dass Ihr Projekt sie nicht stark nutzen würde).

2,5 hinzugefügt, relativ importiert, bessere 64-Bit-Unterstützung und ziemlich viel Geschwindigkeit. Sie könnten ohne all diese leicht genug leben.

2.6 wird nicht veröffentlicht (obwohl es sehr nah ist), so dass es zwar für Entwickler interessant sein mag, es hat nicht die Kompatibilität, nach der Sie suchen.

Werfen Sie einen Blick auf die Versionshinweise zu 2.3, 2.4, 2.5 und dem kommenden 2.6 (verwenden Sie http://www.python.org/download/releases/2.Y/highlights/, wobei 'Y' die Nebenversion ist).

FWIW, für SpamBayes unterstützen wir 2.2 und höher (2.2 erfordert die Installation des E-Mail-Pakets separat). Das ist nicht übermäßig anstrengend, aber die 2.3 Additionen sind nützlich genug und 2.3 alt genug, dass wir 2.2 wahrscheinlich bald fallen lassen werden.

0

Wenn das Projekt Mainstream wird und unter Linux ausgeführt wird, ist die nur vernünftige Wahl 2.4 - nur weil es ein Schmerz ist, etwas anderes als Standard auf Enterprise Linuxes installiert zu bekommen.

In jedem Fall wird jede moderne OS/2.4 oder neuer haben.

0

Sie sollten derzeit Python 2.7, die letzte große Version von Python 2.

Python 3.x hat 3rd-Party-Bibliothek Unterstützung beschränkt und wird oft nicht standardmäßig installiert. Sie schauen sich also die 2.x-Serie an.

Python 2.7 ist im Wesentlichen vollständig abwärtskompatibel mit früheren 2.xs. Darüber hinaus kann es Verwarnungen über Dinge geben, die in Python 3 nicht funktionieren. (Insbesondere lohnt es sich, Komponententests zu führen und bei Unicode- und Byte-Strings pedantisch zu sein.) Die Warnungen werden Sie dazu zwingen schreibt guten Code, der das automatisierte 2to3 Tool 3.

Guido van Rossum officially recommends maintaining a single Python 2 code-base zu Python übersetzen kann, und unter Verwendung von 2to3 zusammen mit Unit-Tests kompatibel Versionen für Python 2 und 3 (Da PEP 3000 geschrieben wurde, zu produzieren, Python 2.6 wurde durch 2.7 abgelöst.)

Verwandte Themen