Ende der Unterstützung für Python 2.7?


133

Gibt es ein bekanntes Datum / einen bekannten Zeitrahmen, in dem Python 2.7 nicht mehr zugunsten von Python 3 unterstützt wird?


8
Eine faire Frage, solange es kein Duplikat gibt, konnte ich keines finden.
Matt Joiner

2
Diese Frage scheint nicht zum Thema zu gehören, da es um die Unterstützung einer Sprachversion geht
bummi

1
Die beste Übersicht, die ich finden konnte, ist diese Tabelle: docs.python.org/devguide/#status-of-python-branches
2.

Ab Anfang 2018 wurde das Drop-Dead-Datum genauer festgelegt: Es ist jetzt der 1. Januar 2020. Wenn Distributionen mit der Änderung "python" auf "python3" verweisen, ist dies eine offenere Frage.
ESR

Antworten:


109

Ab dem 13. April 2014 von http://hg.python.org/peps/rev/76d43e52d978 (PEP 373, Python 2.7 Release Schedule):

Das End-of-Life-Datum (EOL, Sunset-Datum) für Python 2.7 wurde um fünf Jahre in die Zukunft auf 2020 verschoben. Diese Entscheidung wurde getroffen, um den Status von Python 2.7 zu klären und die Sorgen der Benutzer zu lindern, die noch nicht auf Python 3 migrieren können Siehe auch PEP 466 .


23
@Basic Außer es ist nicht voll von Schwachstellen.
Stian OK

5
@StianOK Es hat seinen gerechten Anteil: cvedetails.com/vulnerability-list/vendor_id-10210/…
Basic

14
@Basic welll ... diese Freigabe ist ziemlich gering: 25 über alle Python-Versionen (4% Code Exec): cvedetails.com/product/18230/Python-Python.html?vendor_id=10210 vs PHP mit 408 (27% Code Exec ): cvedetails.com/product/128/PHP-PHP.html?vendor_id=74 oder Java mit 438 (3% Code exec): cvedetails.com/product/19117/Oracle-JRE.html?vendor_id=93 ... Mit "seinem gerechten Anteil" müssen Sie also einen "bemerkenswert niedrigen Anteil" gemeint haben. Alle bis auf 3 dieser Sicherheitsanfälligkeiten waren in einer 3.x-Version ebenfalls Sicherheitsanfälligkeiten, und alle aktuellen Versionen wurden behoben.
Dhj

2
@Basic Haben Sie einen besseren Vorschlag für eine Sicherheitsgrundlage?
Dhj

2
@dhj Ja ... nicht Java! Ok, das ist unfair. Scherz / Flippancy beiseite, die ehrliche Antwort ist nein, ich nicht. Deshalb habe ich mich für "fair share" entschieden. Es gibt keine Sprache, die keine bekannten (und unbekannten) Schwachstellen aufweist. Ich würde sagen, dass in der Regel je bekannter eine Sprache verwendet wird, desto mehr Sicherheitslücken gibt es, nur als Funktion der Überprüfung, auch bekannt als Nutzung / Belohnung durch Ausbeutung. Ich sage nicht, dass Python aus Sicherheitsgründen schlechter ist als andere Sprachen, aber es ist auch nicht besser. Die einzige wirkliche Antwort ist, defensiv zu programmieren und über umfassende Sicherheit zu verfügen.
Basic

29

Im Mai 2010 gab Word of God bekannt, dass Patchlevel-Versionen für Python 2.7 voraussichtlich für mindestens 6 Jahre erstellt werden .

Also vielleicht 2016, wahrscheinlich später.

Bearbeiten: Zurückgeschoben auf 2020. Siehe die Überarbeitung von PEP 373, auf die in anderen Antworten verwiesen wird.


2
Für alle, die diese Antwort in Zukunft finden, wie von der BDFL selbst auf der PyCon 2014 angekündigt, wird die Wartung von 2.7 jetzt bis 2020 verlängert.
Silas Ray


15

Sie sollten dies sorgfältig lesen (siehe: https://news.ycombinator.com/item?id=7582300 ):

Es gibt hier viele Kommentare von Leuten, die nicht auf der Python-Dev-Liste stehen und nicht wirklich verstehen, was dieser Unterschied tatsächlich bedeutet. Die Kernentwickler müssen 2.7 nach 2015 nicht warten, und die meisten von ihnen werden nicht daran beteiligt sein. Dieser Teil hat sich nicht geändert. Was passiert ist, dass Red Hat sich darauf vorbereitet, eine RHEL 7-Version zu schneiden, die AFAIK abhängig davon, wie viel Sie bezahlen, sie 13 Jahre lang unterstützen. Sie müssen also zumindest bis 2027 herausfinden, wie sie 2.7 selbst unterstützen können. Hier lese ich zwischen den Zeilen. RH hat das Recht, Python zu teilen und ihre Wartungs-Patches für sich und seine Kunden zu behalten (Python ist kein Copyleft). Aber, Sie sind nette Leute und vielleicht sind sie bereit, ihre Änderungen zumindest für eine Weile vorab zu übertragen, wenn es noch ein Python-Projekt gibt, das bereit ist, sie zu akzeptieren. Auch dies ist meine Spekulation, die auf der ML-Diskussion basiert, nicht auf dem, was RH tatsächlich angekündigt hat. Eine Analogie kann zu Rails LTS gemacht werden, einer kommerziellen Abzweigung von Rails 2.x, an der patio11 beteiligt war [0]. Es ist unvermeidlich, dass jemand einspringt, um 2.7 zu unterstützen. Lassen Sie uns also sehen, was wir tun können, um eine Situation zu vermeiden, in der die einzige Möglichkeit, 2.7 weiter auszuführen, darin besteht, RHEL zu abonnieren. Mittlerweile gibt es einige große Unternehmen, die 2.7 häufig unter Windows verwenden (z. B. Enthought, Anaconda), und es wird davon ausgegangen, dass ab und zu jemand ein Windows-Installationsprogramm erstellt, vorausgesetzt, Python.org wird weiterhin einen Download hosten. Was hier wirklich passiert, ist also nicht sehr aufregend. Die Core Committer machen nichts anderes, als das Projekt wie ursprünglich geplant zu verlassen. Was passiert, ist, dass sie das Licht im Quellcodeverwaltungs-Repository und auf dem FTP-Server eingeschaltet lassen, um die freie Arbeit von Leuten in großen Unternehmen zu erfassen, die ein Interesse daran haben, 2.7 weiterhin zu unterstützen. Die Alternative ist, dass RH und andere Anbieter proprietäre und teure Gabeln von Python 2.7 erstellen. Das kann ohnehin passieren, aber es wird länger dauern, bis Ihr Arbeitgeber bemerkt, dass Sie Ihre Patches nicht mehr zurückgeben sollten, wenn auf python.org weiterhin Binärdateien angezeigt werden und Sie die IT nicht bitten müssen, SCM und einen Bug-Tracker einzurichten. etc. Was passiert, ist, dass sie das Licht im Quellcodeverwaltungs-Repository und auf dem FTP-Server eingeschaltet lassen, um die freie Arbeit von Leuten in großen Unternehmen zu erfassen, die ein Interesse daran haben, 2.7 weiterhin zu unterstützen. Die Alternative ist, dass RH und andere Anbieter proprietäre und teure Gabeln von Python 2.7 erstellen. Das kann ohnehin passieren, aber es wird länger dauern, bis Ihr Arbeitgeber bemerkt, dass Sie Ihre Patches nicht mehr zurückgeben sollten, wenn auf python.org weiterhin Binärdateien angezeigt werden und Sie die IT nicht bitten müssen, SCM und einen Bug-Tracker einzurichten. etc. Was passiert, ist, dass sie das Licht im Quellcodeverwaltungs-Repository und auf dem FTP-Server eingeschaltet lassen, um die freie Arbeit von Leuten in großen Unternehmen zu erfassen, die ein Interesse daran haben, 2.7 weiterhin zu unterstützen. Die Alternative ist, dass RH und andere Anbieter proprietäre und teure Gabeln von Python 2.7 erstellen. Das kann ohnehin passieren, aber es wird länger dauern, bis Ihr Arbeitgeber bemerkt, dass Sie Ihre Patches nicht mehr zurückgeben sollten, wenn auf python.org weiterhin Binärdateien angezeigt werden und Sie die IT nicht bitten müssen, SCM und einen Bug-Tracker einzurichten. etc.


10

In diesem Artikel heißt es: "Wenn 2.7 veröffentlicht wird, wechselt die 2.x-Zeile in einen Fünf-Jahres-Modus, in dem nur Fehler behoben werden können."

Soweit ich sehe, war Python 2.7 die letzte Version zum Hinzufügen von 2.x-Funktionen, und obwohl gefundene Fehler (für einige Zeit) behoben werden, werden neue Funktionen nur für 3.x-Versionen verwendet.


3
In diesem Artikel wird auch behauptet, dass Python 3 Unicode einführt, also würde ich alles, was darin steht, mit einem Körnchen Salz nehmen. Aber ändern Sie "fünf Jahre" in "mindestens fünf Jahre" und es ist richtig.
Lennart Regebro


6

PEP 373 (Python 2.7 Release Schedule) ist die offizielle Quelle für die Art von Informationen, nach denen Sie gefragt haben.

Derzeit heißt es "Geplante zukünftige Veröffentlichungstermine:"

  • 2.7.7 Mai 2014
  • 2.7.8 November 2014
  • 2.7.9 Mai 2015
  • nach diesem Datum nach Bedarf veröffentlicht

Außerdem heißt es: "Das End of Life-Datum (EOL, Sunset Date) für Python 2.7 wurde um fünf Jahre in die Zukunft verschoben, bis 2020."

Bearbeitet im April 2014 gemäß http://hg.python.org/peps/rev/76d43e52d978


was für eine Erleichterung! hoffentlich ist Python 3 bis dahin tot oder wird in Morella umbenannt, um Verwirrung zu vermeiden.
Lowtech

2
@lowtech - Bis dahin sind sie möglicherweise zu Python 4 übergegangen (möglicherweise werden neue rückwärts inkompatible Änderungen eingeführt), aber ich erwarte nicht, dass 3 ausgestorben ist. Aufgrund der Geschwindigkeit, mit der 3 in den letzten Jahren immer beliebter wurde, gehe ich davon aus, dass in der Community bis 2020 mehr Menschen 3 als 2 verwenden werden. Ich halte jedoch immer noch an Python 2 fest ... nicht genug zwingende Änderungen, um Änderungen vorzunehmen das Risiko, auf 3 zu springen. Ich importiere allerdings viel aus der Zukunft .
ArtOfWarfare

6

Das Python-Entwicklerhandbuch listet den " Status der Python-Zweige " von Version 2.6 bis zur aktuellen Version auf, einschließlich ihres aktuellen Support-Status mit End-of-Life-Daten.

Derzeit unterstützt (Fehler + Sicherheitskorrekturen):

  • Python 3.8 (aktueller Master- / Entwicklungszweig)
  • Python 3.7
  • Python 3.6
  • Python 2.7 (bis 2020-01-01)

Nur Sicherheitskorrekturen:

  • Python 3.5
  • Python 3.4

1

Python 2.7 wird für immer verfügbar sein. Es gibt zu viel alten Code, der ihn verwendet, den niemand umschreiben möchte. Es gibt bereits eine Gabelung namens Tauthon, aber wir können andere sehen, wenn diese sinnlose Frist real wird.


2
Für EOL-Produkte ist es nicht "sinnlos", es geht um die Ressourcenzuweisung. Da es Open Source ist, wird es in seiner aktuellen Form natürlich für immer verfügbar sein. Es wird aber nicht mehr unterstützt . Zumindest von den offiziellen Betreuern. Ich bin mir nicht sicher, welche Frage Sie hier beantworten.
Täuschung

Der Benutzer fragte, wie lange Python2.7 unterstützt wird. Der Benutzer hat nicht nach Unterstützung von offiziellen Betreuern gefragt. Bei einem Projekt wie diesem mit so vielen Codezeilen wird es in der Praxis regelmäßig Updates, Backports und eine gute Unterstützung für Python2 für immer geben, auch von Nicht-Betreuern. (Ich wurde von meiner persönlichen Frustration über diese ganze Python3-Sache mitgerissen, daher die "sinnlose").
Max

Ich halte diesen Kommentar für relevant. Tauthon ist identisch mit Python 2.7 und scheint für eine Weile unterstützt zu werden. Es ist also erwähnenswert.
Phil

Ich habe die Erfahrung gemacht, dass jüngere Programmierer die Leistung und Effizienz, die sich aus der Gewährleistung der Abwärtskompatibilität ergibt, nicht verstehen. Ich werde die Entscheidung von Guide van Rossum, mehr als Zehntausende von Stunden verschwendeten Lebens zu verursachen, niemals verstehen, indem die Kompatibilität absichtlich ohne guten Nutzen (weder Leistung noch Lesbarkeit) unterbrochen wird.
Max

1
@Tetragrammaton: Bitte erklären Sie, warum es gut ist, nicht kompatibel zu sein. Bitte erläutern Sie den "grundlegenden Fehler". Ich arbeite seit über 15 Jahren in Vollzeit mit Python und sehe keinen großen Unterschied, der für mich relevant ist. C blieb 40 Jahre lang gleich und ist immer noch eine wichtige Sprache und hat sich nicht viel verändert. Javascript hat sich im Laufe der Jahre extrem verbessert und ist immer noch abwärtskompatibel. C ++ ist weiterhin abwärtskompatibel mit C. Windows 10 kann weiterhin Windows 3-Programme ausführen. Unsere CPUs führen noch 8086-Code aus den 70er Jahren aus. Wir machen jeden Tag Fortschritte, ohne die Unterstützung zu brechen.
Max
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.