Кінець підтримки python 2.7?


133

Чи відомі дата / часовий інтервал, коли python 2.7 більше не підтримуватиметься на користь python 3?


8
Справедливе запитання, поки немає дублікатів, я не міг знайти жодного.
Метт Столяр

2
Це питання видається поза темою, оскільки йдеться про підтримку мовної версії
bummi

1
Кращий огляд я зміг знайти цю таблицю: docs.python.org/devguide/#status-of-python-branches
Matth

Станом на початок 2018 року дата випадання була визначена більш детально: це вже 1 січня 2020 року. Коли дистрибуції зі зміною "python" на "python3" є питанням більш відкритим.
ESR

Відповіді:


109

Станом на 13 квітня 2014 року за посиланням http://hg.python.org/peps/rev/76d43e52d978 (PEP 373, Розклад випуску Python 2.7):

Дата закінчення життя (EOL, дата заходу) для Python 2.7 була перенесена на п’ять років у майбутнє, до 2020 року. Це рішення було прийнято для уточнення статусу Python 2.7 та позбавлення від проблем, які не можуть перейти на Python 3 Див. Також PEP 466 .


23
@Basic За винятком того, що він не є вразливим.
Стиан ОК

5
@StianOK Він отримав свою справедливу частку: cvedetails.com/vulnerability-list/vendor_id-10210/…
Основний

14
@Basic welll ... ця частка досить тонка: 25 для всіх версій python (4% код exec): cvedetails.com/product/18230/Python-Python.html?vendor_id=10210 vs php з 408 (27% код exec ): cvedetails.com/product/128/PHP-PHP.html?vendor_id=74 або Java з 438 (3% код exec): cvedetails.com/product/19117/Oracle-JRE.html?vendor_id=93 ... Отже, під "його справедливою часткою" ви мали на увазі "надзвичайно низьку частку". Крім того, усі, крім 3 цих вразливих місць, також були вразливими у версії 3.x, і всі оновлені версії виправлені.
dhj

2
@Basic Чи є краща пропозиція щодо базової лінії безпеки?
dhj

2
@dhj Так ... Не Java! Гаразд, це несправедливо. Жарти / невідповідність убік, чесна відповідь - ні, я ні. Тому я пішов з "справедливою часткою". Там немає мови, яка б не мала відомих (і невідомих) вразливих місць. Я б сказав, що як правило, чим ширше використовується нами мова, тим більше відомих уразливостей, суто як функція перевірки, а саме використання / винагорода від експлуатації. Я не кажу, що Python з точки зору безпеки гірший, ніж інші мови, але і кращий. Єдина реальна відповідь - програмувати оборонно і мати глибоку безпеку.
Основна

29

У травні 2010 року Словом Божим було те, що випуски Patchlevel для Python 2.7, ймовірно, будуть зроблені принаймні 6 років .

Тож, може, 2016, напевно, пізніше.

Редагувати: Відсунуто до 2020 року. Див. Редакцію до PEP 373, пов'язану з іншими відповідями.


2
Для тих, хто знайде цю відповідь у майбутньому, як оголосив BDFL сам на PyCon 2014, технічне обслуговування 2.7 продовжено до 2020 року.
Silas Ray


15

Ви повинні прочитати це уважно (посилання: https://news.ycombinator.com/item?id=7582300 ):

Тут багато коментарів від людей, які не знаходяться в списку python-dev і не розуміють, що насправді це означає. Основні розробники не повинні підтримувати 2,7 після 2015 року, і більшість з них не буде задіяна в ньому. Ця частина не змінилася. Що відбувається, це те, що Red Hat готується скоротити реліз RHEL 7, який AFAIK залежно від того, скільки ви платите їм, вони підтримують протягом 13 років. Тож їм потрібно буде придумати, як підтримувати 2.7 хоча б до 2027 року. Ось, де я читаю між рядками. RH цілком належать до свого права роздрібнювати Python та зберігати патчі технічного обслуговування для себе та своїх клієнтів (Python не є copyleft). Але, вони хороші хлопці, і, можливо, вони готові прискорити свої зміни хоча б на деякий час, якщо ще є проект Python, який бажає їх прийняти. Знову ж таки, це моє міркування, засноване на обговоренні ML, а не того, що RH насправді сказав, що вони зроблять. Аналогію можна зробити в Rails LTS, комерційній вилці Rails 2.x, до якої входив patio11 [0]. Неминуче хтось збирається надати підтримку 2.7, і тому давайте подивимося, що ми можемо зробити, щоб уникнути ситуації, коли єдиний спосіб продовжувати працювати 2.7 - це підписатися на RHEL. Тим часом, є кілька великих компаній, які 2,7 широко використовують у Windows (наприклад, Enthought, Anaconda), і думка про те, що, можливо, хтось може бути знайдений, щоб виробляти інсталятор Windows раз за деякий час, припускаючи, що Python.org все ще розмістить завантаження. Тож дійсно те, що тут відбувається, не дуже хвилює. Основні комітети не роблять нічого іншого, ніж залишати проект так, як спочатку планували. Що відбувається, це те, що вони залишатимуть світло у сховищі управління джерелами та на сервері FTP, щоб захопити безкоштовну робочу силу людей великих компаній, які зацікавлені продовжувати підтримувати 2.7. Альтернативою є те, що RH та інші постачальники створюють фірмові і дорогі вилки Python 2.7. Це все одно може відбутися, але ваш роботодавець займе більше часу, коли ваш роботодавець помітить, що вам слід припинити надсилати свої патчі, якщо бінарні файли все ще з’являються на python.org і вам не доведеться просити ІТ-налаштувати SCM та трекер помилок, тощо. Що відбувається, це те, що вони залишатимуть світло у сховищі управління джерелами та на сервері FTP, щоб захопити безкоштовну робочу силу людей великих компаній, які зацікавлені продовжувати підтримувати 2.7. Альтернативою є те, що RH та інші постачальники створюють фірмові і дорогі вилки Python 2.7. Це все одно може відбутися, але ваш роботодавець займе більше часу, коли ваш роботодавець помітить, що вам слід припинити надсилати свої патчі, якщо бінарні файли все ще з’являються на python.org і вам не доведеться просити ІТ-налаштувати SCM та трекер помилок, тощо. Що відбувається, це те, що вони залишатимуть світло у сховищі управління джерелами та на сервері FTP, щоб захопити безкоштовну робочу силу людей великих компаній, які зацікавлені продовжувати підтримувати 2.7. Альтернативою є те, що RH та інші постачальники створюють фірмові і дорогі вилки Python 2.7. Це все одно може відбутися, але ваш роботодавець займе більше часу, коли ваш роботодавець помітить, що вам слід припинити надсилати свої патчі, якщо бінарні файли все ще з’являються на python.org і вам не доведеться просити ІТ-налаштувати SCM та трекер помилок, тощо.


10

Ця стаття говорить: "Коли випущено 2.7, лінія 2.x перейде в п'ять років режиму виправлення помилок".

Отже, наскільки я бачу, Python 2.7 був останнім випуском доданих функцій 2.x, і хоча знайдені помилки збираються виправити (якийсь час), нові функції переходять лише на версії 3.x.


3
Ця стаття також стверджує, що Python 3 вводить Unicode, тому я б вважав, що там сказано, із зерном солі. Але змініть "п’ять років" на "принаймні п'ять років" і це правильно.
Леннарт Регебро


6

PEP 373 (Розклад випуску Python 2.7) є офіційним джерелом для тієї інформації, яку ви просили.

Наразі написано "Планові дати випуску в майбутньому:"

  • 2.7.7 травня 2014 року
  • 2.7.8 листопада 2014 року
  • 2.7.9 травня 2015 року
  • після цієї дати, випускає за потребою

Крім того, в ньому йдеться про те, що "дата закінчення життя (EOL, дата заходу сонця) для Python 2.7 була перенесена на п'ять років у майбутнє, до 2020 року".

Відредаговано у квітні 2014 року відповідно до http://hg.python.org/peps/rev/76d43e52d978


яке полегшення! сподіваємось, python 3 вже буде мертвим або перейменований на щось подібне до morella, щоб припинити плутанину.
lowtech

2
@lowtech - Вони, можливо, вже перейшли на Python 4 (можливо, запровадили нові несумісні зміни назад), але я не очікую, що 3 вимерли. Виходячи з того, як швидко за останні кілька років у 3 зростає популярність, я сподіваюсь, що до 2020 року в громаді буде більше людей, які використовують 3, ніж 2. Я все ще тримаюся на Python 2, хоча ... недостатньо вагомих змін для внесення ризик стрибнути до 3. Хоча я імпортую з майбутнього багато.
ArtOfWarfare

6

Посібник для розробників Python перераховує " Стан гілок Python " від версії 2.6 до поточної версії, включаючи їх поточний стан підтримки з датами закінчення терміну служби.

На даний момент підтримується (помилка + виправлення безпеки):

  • Python 3.8 (поточний майстер / галузь розробки)
  • Пітон 3.7
  • Пітон 3.6
  • Python 2.7 (до 2020-01-01)

Виправлення безпеки лише:

  • Python 3.5
  • Python 3.4

1

Python 2.7 буде назавжди. Занадто багато старого коду, який використовує його, що ніхто не хоче переписувати. Вилка вже називається Tauthon, але ми можемо побачити інших, якщо цей безглуздий термін реалізується.


2
Для продуктів EOL це не безглуздо, це стосується розподілу ресурсів. Звичайно, оскільки він є відкритим кодом, він буде назавжди у своєму теперішньому вигляді. Але це більше не буде підтримуватися . Принаймні офіційними обслуговуючими особами. Я не дуже впевнений, на яке питання ви тут відповідаєте.
деге

Користувач запитав, як довго буде підтримуватися Python2.7. Користувач не запитував про підтримку у офіційних технічних працівників. З таким проектом, з таким численним рядком коду там, на практиці, будуть постійно регулярні оновлення, резервні копії та хороша підтримка Python2 назавжди, які не обслуговують. (Мене захопили мої особисті розчарування щодо всієї цієї речі Python3, отже, "безглуздо").
Макс

Я вважаю, що цей коментар є актуальним. Tauthon ідентичний Python 2.7 і, здається, він буде підтримуватися деякий час. Отже, варто згадати.
Філ

Я переконався, що молодші програмісти не розуміють потужність та ефективність, які випливають із гарантування зворотної сумісності. Я ніколи не зрозумію рішення Керівника ван Россума завдати шкоди більше десяткам тисяч годин витраченого життя, навмисно порушуючи сумісність без корисної користі (ні продуктивності, ні читабельності).
Макс

1
@Tetragrammaton: Будь ласка, поясніть, чому не сумісність - це добре. Поясніть, будь ласка, в чому полягала б "основна вада". Я працюю з Python повний робочий день понад 15 років, і я не бачу важливої ​​різниці, яка є для мене актуальною. C залишався таким самим 40 років і досі є основною мовою і не дуже змінився. Javascript надзвичайно вдосконалювався протягом багатьох років і все ще сумісний із зворотним ходом. C ++ все ще сумісний з C. Windows 10 все ще може запускати програми Windows 3. Наші процесори все ще працюють 8086 код з 70-х. Ми просуваємося щодня, не порушуючи підтримки.
Макс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.