Sollten wir Python 2.6 oder 2.7 oder 3.x verwenden? [geschlossen]

25

Die Version von Python, die ich benutze, ist 2.6 , und es gibt 2.7 und 3.x. Normalerweise benutze ich Python für ein einfaches Programm / Snippet. Mir ist klar, dass es einen großen Unterschied zwischen 2.x und 3.x gibt. Ich würde wirklich gerne wissen, ob ich mit Python ein größeres Projekt machen werde, welche Version von Python soll ich verwenden?

Sollte ich auf 2.7 upgraden oder auf 3.x gehen oder bei 2.6 bleiben?

Die Entscheidung sollte auf diesen Begriffen beruhen:

  1. Anzahl der Benutzer im Internet als Community. Mehr Benutzer bedeuten mehr Open-Source-Paket und Hilfe von ihnen.

  2. Funktionalität.

  3. Unterstützung durch das offizielle Entwicklungsteam.

  4. Kompatibilität zu bestehenden Modulen / Paketen.

Vielen Dank!

lamwaiman1988
quelle
5
Kann jemand auf nützliche Änderungen durch Python 3.x hinweisen?
Lamwaiman1988
1
Sie erwähnen, dass Sie wissen, dass die Kompatibilität mit vorhandenen Modulen ein Problem darstellt, aber Sie sagen uns nicht, auf welche vorhandenen Module sich Ihr Code stützt. Diese Frage ist so gut wie unbeantwortet.
Wooble
2
off topic; Empfehlungen UND Gorilla vs Hai in einer Frage wow!
3
Diese Frage und ihre Antworten werden nur für einen kurzen Zeitraum von Nutzen sein. Was jetzt Sinn macht, ergibt in einem Jahr, in dem 3.x reifer wird, möglicherweise keinen Sinn mehr.
Bryan Oakley
Beachten Sie, dass (a) die Frage auch im Jahr 2014 noch relevant ist (z. B., dass RobotFramework nicht mit Python 3 funktioniert) und (b) das Schließen dieser Frage diese Seite veraltet hält, da - auch wenn sie in den Google-Suchergebnissen häufig vorkommt - neue Antworten vorliegen kann nicht gebucht werden.
Bob Stein

Antworten:

27

Ich würde Python 2.7 selbst vorschlagen. Es ist die neueste Version in der Python 2.x-Serie. Die meisten Python-Module funktionieren mit Python 2.x. Es gibt eine Bewegung, um zu Python 3 zu wechseln, aber jedes der Python 3-Module ist für 2 und 3 geschrieben. Denken Sie daran, keine alten Funktionen zu verwenden, die in Python 3 nicht verfügbar sind, sodass Sie nur Ihren Code zu 2to3 konvertieren können Lass es auf Python 3 laufen.

Wenn Sie mit Python 3 arbeiten, sind Sie einer der ersten Anwender, und Sie müssen wahrscheinlich andere anweisen, Python 3 herunterzuladen (viele Computer verfügen nur über Python 2). Auf der anderen Seite werden neue Funktionen nur für Python 3 verfügbar sein. Python 2 wird permanent gewartet. Daher würde ich nicht empfehlen, Python 2 in 10 Jahren noch zu verwenden.

Wenn Sie Python-Pakete und deren Kompatibilität mit Python 3 im Auge behalten möchten, können Sie diese Site im Auge behalten: http://python3wos.appspot.com/

Sternberg
quelle
django unterstützt kein 3.x? Benutzer, die mit Django vertraut sind, können 3.x also nicht verwenden?
Lamwaiman1988
Wenn eine neue Version veröffentlicht wird, bedeutet dies normalerweise, dass sie besser ist als die frühere. Und warum wird Python in der 2.x-Reihe und in der 3.x-Reihe veröffentlicht? Was ist der tatsächliche Unterschied in ihnen.
HEISSER
4
Python 3 hat einige Änderungen an der Sprache vorgenommen, die von Vorteil sind, aber sie sind nicht abwärtskompatibel mit einigen Funktionen in Python 2. Daher wurden einige Elemente entfernt und einige hinzugefügt (und die entfernten Elemente machen sie nicht kompatibel).
Sternberg
+1 für 2.7, bestes Verhältnis der Kompatibilität (zumindest für die Bibliotheken, die ich verwende), bis 3 weiter verbreitet ist
Wildpeaks
@Ashinkn Die Änderungen finden Sie hier docs.python.org/3.0/whatsnew/3.0.html . Die wichtigste Änderung, die die Kompatibilität beeinträchtigt, ist die Umstellung von der Verwendung von Unicode (im Gegensatz zu ASCII) als Standardzeichenfolgentyp. Wo zuvor Zeichenfolgen als Byte [] verwendet wurden, wird stattdessen ein neuer Bytearray-Typ verwendet. Außerdem müssen alle 2x-Zeichenfolgen, die explizit als Unicode definiert sind, in reguläre Zeichenfolgen geändert werden.
Evan Plaice
19

Meiner Meinung nach müssen wir damit beginnen, die Leute auf Python 3 umzustellen, und wenn es Bibliotheken gibt, die nicht mit Python 3 kompatibel sind, müssen wir damit beginnen, dass dies nicht der Fall ist.

Python 3 ist die Zukunft der Sprache. Je mehr Code wir damit schreiben, desto besser.

Musaab
quelle
Was wir brauchen, ist ein einzelner Interpreter, der mit beiden Python-Versionen kompatibel ist und sie intelligent analysieren kann. Das heißt, der Interpreter würde sowohl python2 als auch python3 in denselben Bytecode kompilieren, so dass sie kompatibel sind, was es möglich macht, python3 mit einer python2-Bibliothek zu verwenden. Wenn C, C ++ und Java das können, kann Python das auch.
Braden Best
4

Django unterstützt jetzt "experimentell" Python 3.2+, wie Sie aus deren Beiträgen hier ersehen können .

Angesichts dessen und der Tatsache, dass Python 3.x die Zukunft der Sprache ist, würde ich sagen, dass Python 3 jetzt am besten ist.

CorayThan
quelle
2

Überprüfen Sie für jedes Projekt, ob alle für ein Projekt erforderlichen Bibliotheken bereits 3.x-Python-Unterstützung erhalten haben, und verwenden Sie dann Python 3.x, da es die Zukunft ist und es sich um die letzte offizielle stabile Version handelt.

Verwenden Sie ansonsten alles, was Sie für die Bibliothekskompatibilität benötigen.

cnd
quelle
2

Es spielt keine Rolle, ob Sie Python 2.7 oder Python 3 verwenden. Wenn Sie in Python 2.7 keine alten Funktionen verwenden, können Sie Ihren Code nur 2to3 ausführen, um ihn unter Python 3 auszuführen.

Ramchandra Apte
quelle
0

Ich war vorher im selben Boot und das habe ich gefunden. Python 2.6, 2.7 und 3.2 können mit MacPorts nebeneinander installiert und problemlos gewechselt werden. (Ich bin ein Mac-Benutzer). Suchen Sie nach Alternativen zu Macports für Ihre Plattform.

ThinkCode
quelle
0

Bis eine Brücke innerhalb von 3.x entwickelt wird, um die transparente Verwendung von 2.7-Paketen zu ermöglichen, ist ein Schachzug mit Gefahren verbunden, da es in der Sprache wirklich nur darum geht, was dazu beigetragen wurde. Formale Überlegungen und Reinheit sind im Vergleich zu vernachlässigen. Es ist unwahrscheinlich, dass eine solche transparente Brücke aus purer pedantischer Hartnäckigkeit und Missachtung der Nutzerbasis entsteht.

Don Gateley
quelle
Eine solche transparente Brücke ist unerreichbar. Die 2to3- und sechs-Pakete bieten eine umfassende Überbrückung, sind jedoch alles andere als transparent.
Martijn Pieters