Fine del supporto per Python 2.7?


133

Esiste una data / un periodo di tempo noti in cui python 2.7 non sarà più supportato a favore di python 3?


8
Una domanda equa finché non ci sono duplicati, non sono riuscito a trovarne nessuno.
Matt Joiner,

2
Questa domanda sembra fuori tema perché riguarda il supporto di una versione in lingua
bummi,

1
La migliore panoramica che ho trovato è questa tabella: docs.python.org/devguide/#status-of-python-branches
matth

A partire dall'inizio del 2018 la data di scadenza è stata specificata più da vicino: è ora il 1 ° gennaio 2020. Quando le distribuzioni con il cambiamento "python" per indicare "python3" è una domanda più aperta.
ESR,

Risposte:


109

A partire dal 13 aprile 2014, da http://hg.python.org/peps/rev/76d43e52d978 (PEP 373, Python 2.7 Release Schedule):

La data di fine vita (EOL, data del tramonto) per Python 2.7 è stata spostata di cinque anni nel futuro, fino al 2020. Questa decisione è stata presa per chiarire lo stato di Python 2.7 e alleviare le preoccupazioni per quegli utenti che non possono ancora migrare su Python 3 Vedi anche PEP 466 .


23
@Basic Tranne che non è pieno di vulnerabilità.
Stian OK,

5

14
@Basic welll ... quella condivisione è piuttosto sottile: 25 su tutte le versioni di Python (4% codice exec): cvedetails.com/product/18230/Python-Python.html?vendor_id=10210 vs php con 408 (27% codice exec ): cvedetails.com/product/128/PHP-PHP.html?vendor_id=74 o Java con 438 (3% codice exec): cvedetails.com/product/19117/Oracle-JRE.html?vendor_id=93 ... Quindi per "la sua giusta quota" devi aver inteso una "quota notevolmente bassa". Inoltre, tutte le vulnerabilità tranne 3 erano presenti anche in una versione 3.xe tutte le versioni aggiornate sono state corrette.
DJ

2
@Basic hai un suggerimento migliore per una base di sicurezza?
dhj

2
@dhj Sì ... Non Java! Ok, è ingiusto. Scherzi / volgarità a parte, la risposta onesta è no, io no. Ecco perché sono andato con "equa quota". Non esiste un linguaggio là fuori che non abbia vulnerabilità note (e sconosciute). Direi che, come regola generale, più una lingua viene utilizzata da noi, più vulnerabilità ci sono, puramente in funzione del controllo noto come utilizzo / ricompensa dallo sfruttamento. Non sto dicendo che Python è peggio di altre lingue dal punto di vista della sicurezza, ma non è neanche meglio. L'unica vera risposta è programmare in modo difensivo e avere sicurezza in profondità.
Base



15

dovresti leggerlo attentamente (rif: https://news.ycombinator.com/item?id=7582300 ):

Ci sono molti commenti qui da parte di persone che non sono nella lista di Python-Dev e non capiscono davvero cosa significhi effettivamente questo diff. Gli sviluppatori core non sono tenuti a mantenere la 2.7 post-2015 e la maggior parte di loro non ne sarà coinvolta. Quella parte non è cambiata. Quello che sta accadendo è che Red Hat si sta preparando a tagliare una versione di RHEL 7, che AFAIK a seconda di quanto li paghi supportano per 13 anni. Dovranno quindi capire come supportare la 2.7 almeno fino al 2027. Ecco dove sto leggendo tra le righe. RH ha il diritto di forkare Python e mantenere le patch di manutenzione per sé e per i propri clienti (Python non è copyleft). Ma, sono bravi ragazzi e quindi forse sono disposti ad anticipare i loro cambiamenti almeno per un po 'se c'è ancora un progetto Python disposto ad accettarli. Ancora una volta, questa è la mia speculazione basata sulla discussione ML, non su ciò che RH ha effettivamente detto che faranno. Un'analogia può essere fatta con Rails LTS, un fork commerciale di Rails 2.x in cui patio11 era coinvolto in [0]. Inevitabilmente qualcuno interverrà per supportare la 2.7, e quindi vediamo cosa possiamo fare per evitare una situazione in cui l'unico modo per continuare a eseguire la 2.7 è abbonarsi a RHEL. Nel frattempo, ci sono alcune grandi aziende che usano ampiamente 2.7 su Windows (ad esempio Enthought, Anaconda) e si pensa che probabilmente si possa trovare qualcuno che produce un programma di installazione di Windows una volta ogni tanto, supponendo che Python.org ospiterà ancora un download. Quindi davvero quello che sta succedendo qui non è molto eccitante. I core committer non stanno facendo nulla di diverso che lasciare il progetto come inizialmente previsto. Quello che sta succedendo è che lasceranno accese le luci nel repository di controllo del codice sorgente e sul server FTP, in modo da catturare la manodopera gratuita delle persone delle grandi aziende che hanno interesse a continuare a supportare 2.7. L'alternativa è che RH e altri fornitori creano forchette proprietarie e costose di Python 2.7. Ciò potrebbe finire per accadere comunque, ma ci vorrà più tempo perché il tuo datore di lavoro noti che dovresti smettere di contribuire con le tue patch se i binari appaiono ancora su python.org e non devi chiedere all'IT di configurare SCM e un tracker di bug, eccetera. Quello che sta succedendo è che lasceranno accese le luci nel repository di controllo del codice sorgente e sul server FTP, in modo da catturare la manodopera gratuita delle persone delle grandi aziende che hanno interesse a continuare a supportare 2.7. L'alternativa è che RH e altri fornitori creano forchette proprietarie e costose di Python 2.7. Ciò potrebbe finire per accadere comunque, ma ci vorrà più tempo perché il tuo datore di lavoro noti che dovresti smettere di contribuire con le tue patch se i binari appaiono ancora su python.org e non devi chiedere all'IT di configurare SCM e un tracker di bug, eccetera. Quello che sta succedendo è che lasceranno accese le luci nel repository di controllo del codice sorgente e sul server FTP, in modo da catturare la manodopera gratuita delle persone delle grandi aziende che hanno interesse a continuare a supportare 2.7. L'alternativa è che RH e altri fornitori creano forchette proprietarie e costose di Python 2.7. Ciò potrebbe finire per accadere comunque, ma ci vorrà più tempo perché il tuo datore di lavoro noti che dovresti smettere di contribuire con le tue patch se i binari appaiono ancora su python.org e non devi chiedere all'IT di configurare SCM e un tracker di bug, eccetera.


10

Questo articolo dice: "Quando verrà rilasciato 2.7, la linea 2.x passerà a cinque anni in modalità solo correzione di bug".

Quindi, per quanto vedo, Python 2.7 è stata l'ultima versione 2.x ad aggiungere funzionalità, e sebbene i bug rilevati verranno corretti (per qualche tempo), le nuove funzionalità vanno solo alle versioni 3.x.


3
Questo articolo afferma anche che Python 3 introduce Unicode, quindi prenderei tutto ciò che dice con un pizzico di sale. Ma cambia "cinque anni" in "almeno cinque anni" ed è corretto.
Lennart Regebro,


6

PEP 373 (Python 2.7 Release Schedule) è la fonte ufficiale per il tipo di informazioni richieste.

Attualmente dice "Date di rilascio future pianificate:"

  • 2.7.7 maggio 2014
  • 2.7.8 novembre 2014
  • 2.7.9 maggio 2015
  • oltre questa data, rilascia se necessario

Inoltre, dice "La data di fine vita (EOL, data del tramonto) per Python 2.7 è stata spostata di cinque anni nel futuro, fino al 2020".

Modificato ad aprile 2014, secondo http://hg.python.org/peps/rev/76d43e52d978


che sollievo! speriamo che Python 3 sia morto da allora o rinominato in qualcosa come Morella per fermare la confusione.
lowtech,

2
@lowtech - A quel punto potrebbero essere passati a Python 4 (eventualmente introducendo nuove modifiche incompatibili all'indietro), ma non mi aspetto che 3 si sia spento. In base alla rapidità con cui 3 è cresciuto in popolarità negli ultimi anni, mi aspetto che la community avrà più persone che usano 3 di 2 entro il 2020. Sto ancora trattenendo Python 2, anche se ... non abbastanza modifiche convincenti da apportare il rischio di saltare a 3. Importano molto dal futuro , però.
ArtOfWarfare il

6

La Guida per gli sviluppatori di Python elenca lo " Stato delle filiali Python " dalla versione 2.6 alla versione corrente, incluso il loro stato di supporto corrente con le date di fine vita.

Attualmente supportato (bug + correzioni di sicurezza):

  • Python 3.8 (attuale master / ramo di sviluppo)
  • Python 3.7
  • Python 3.6
  • Python 2.7 (fino al 2020-01-01)

Solo correzioni di sicurezza:

  • Python 3.5
  • Python 3.4

1

Python 2.7 sarà presente per sempre. C'è troppo vecchio codice che lo utilizza che nessuno vuole riscrivere. Esiste già un fork chiamato Tauthon, ma potremmo vedere altri se questa scadenza inutile diventa reale.


2
Non è "inutile" per i prodotti EOL, riguarda l'allocazione delle risorse. Naturalmente, poiché è open source, sarà presente per sempre nella sua forma attuale. Ma non sarà più supportato . Almeno dai manutentori ufficiali. Non sono davvero sicuro a quale domanda stai rispondendo qui.
Inganno

L'utente ha chiesto per quanto tempo ci sarà il supporto per Python2.7. L'utente non ha chiesto informazioni sul supporto dei manutentori ufficiali. Con un progetto come questo, con così tante righe di codice là fuori, in pratica, ci saranno aggiornamenti regolari, backport e un buon supporto per Python2 per sempre, da parte di non manutentori. (Sono stato portato via dalla mia frustrazione personale per tutta questa cosa di Python3, da qui il "inutile").
Max

Penso che questo commento sia pertinente. Tauthon è identico a Python 2.7 e sembra che sarà supportato per un po '. Quindi, vale la pena menzionare.
Phil

Ho fatto l'esperienza che i programmatori più giovani non comprendono la potenza e l'efficienza derivanti dalla garanzia di compatibilità con le versioni precedenti. Non capirò mai la decisione di Guide van Rossum di causare danni, più di decine di migliaia di ore di vita sprecata, rompendo intenzionalmente la compatibilità senza alcun beneficio (né prestazioni né leggibilità).
Max

1
@Tetragrammaton: spiega perché non essere compatibile è una buona cosa. Spiega quale sarebbe il "difetto fondamentale". Lavoro con Python a tempo pieno da 15 anni e non riesco a vedere una grande differenza per me rilevante. C è rimasto lo stesso per 40 anni ed è ancora una lingua importante e non è cambiata molto. Javascript è migliorato notevolmente nel corso degli anni ed è ancora compatibile con le versioni precedenti. C ++ è ancora retrocompatibile con C. Windows 10 può ancora eseguire programmi Windows 3. Le nostre CPU eseguono ancora il codice 8086 degli anni '70. Facciamo progressi ogni giorno, senza interrompere il supporto.
Max
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.