Kết thúc hỗ trợ cho python 2.7?


133

Có một ngày / khung thời gian đã biết khi python 2.7 sẽ không được hỗ trợ nữa cho python 3 không?


8
Một câu hỏi công bằng miễn là không có bản sao, tôi không thể tìm thấy.
Matt Tham gia

2
Câu hỏi này dường như lạc đề vì đó là về sự hỗ trợ của phiên bản ngôn ngữ
bummi

1
Tổng quan tốt nhất mà tôi có thể tìm thấy là bảng này: docs.python.org/devguide/#status-of-python-branches
matth

Kể từ đầu năm 2018, ngày chết đã được chỉ định chặt chẽ hơn: Bây giờ là ngày 1 tháng 1 năm 2020. Khi phân phối với thay đổi "python" để trỏ đến "python3" là một câu hỏi mở hơn.
ESR

Câu trả lời:


109

Kể từ ngày 13 tháng 4 năm 2014, từ http://hg.python.org/peps/rev/76d43e52d978 (PEP 373, Lịch phát hành Python 2.7):

Ngày kết thúc cuộc sống (EOL, ngày hoàng hôn) cho Python 2.7 đã được chuyển sang năm năm tới năm 2020. Quyết định này được đưa ra để làm rõ trạng thái của Python 2.7 và giảm bớt lo lắng cho những người dùng chưa thể di chuyển sang Python 3 Xem thêm PEP 466 .


23
@Basic Ngoại trừ nó không đầy đủ các lỗ hổng.
Stian OK

5
@StianOK Nó đã được chia sẻ công bằng: cvedetails.com/vulnerability-list/vendor_id-10210/iêu
Cơ bản

14
@Basic welll ... chia sẻ đó khá mỏng: 25 trên tất cả các phiên bản python (mã thực thi 4%): cvedetails.com/product/18230/Python-Python.html?vendor_id=10210 so với php với 408 (mã thực thi 27% ): cvedetails.com/product/128/PHP-PHP.html?vendor_id=74 hoặc Java với 438 (mã thực thi 3%): cvedetails.com/product/19117/Oracle-JRE.html?vendor_id=93 ... Vì vậy, bằng "chia sẻ công bằng", bạn hẳn có nghĩa là "chia sẻ thấp đáng kể". Ngoài ra, tất cả trừ 3 trong số các lỗ hổng đó cũng nằm trong các lỗ hổng trong phiên bản 3.x và tất cả các phiên bản cập nhật đều được sửa.
dhj

2
@Basic bạn có gợi ý nào tốt hơn cho đường cơ sở bảo mật không?
dhj

2
@dhj Có ... Không phải Java! Ok, thật không công bằng. Đùa / bỏ qua một bên, câu trả lời trung thực là không, tôi không. Đó là lý do tại sao tôi đã đi với "chia sẻ công bằng". Không có ngôn ngữ nào ngoài đó không có lỗ hổng đã biết (và chưa biết). Tôi muốn nói rằng theo nguyên tắc chung, ngôn ngữ chúng ta càng sử dụng rộng rãi thì càng có nhiều lỗ hổng được biết đến, hoàn toàn là một chức năng của sự xem xét hay còn gọi là sử dụng / phần thưởng từ việc khai thác. Tôi không nói Python tệ hơn các ngôn ngữ khác từ quan điểm bảo mật nhưng cũng không tốt hơn. Câu trả lời thực sự duy nhất là lập trình phòng thủ và bảo mật chuyên sâu.
Cơ bản

29

Vào tháng 5 năm 2010, Word of Godbản phát hành patchlevel cho Python 2.7 có thể sẽ được thực hiện trong ít nhất 6 năm .

Vì vậy, có thể năm 2016, có thể muộn hơn.

Chỉnh sửa: Đẩy trở lại năm 2020. Xem bản sửa đổi thành PEP 373, được liên kết với trong các câu trả lời khác.


2
Đối với bất kỳ ai tìm thấy câu trả lời này trong tương lai, như được công bố bởi chính BDFL tại PyCon 2014, bảo trì 2.7 được mở rộng đến năm 2020 ngay bây giờ.
Silas Ray


15

bạn nên đọc kỹ điều này (ref: https://news.ycombinator.com/item?id=7582300 ):

Có rất nhiều ý kiến ​​ở đây từ những người không có trong danh sách python-dev và không thực sự hiểu điều này thực sự có nghĩa là gì. Các nhà phát triển cốt lõi không bắt buộc phải duy trì 2.7 sau năm 2015 và hầu hết trong số họ sẽ không tham gia vào đó. Phần đó đã không thay đổi. Điều đang xảy ra là Red Hat đang chuẩn bị cắt giảm một bản phát hành RHEL 7, mà AFAIK tùy thuộc vào số tiền bạn trả cho họ mà họ hỗ trợ trong 13 năm. Vì vậy, họ sẽ cần phải tìm ra cách hỗ trợ 2.7 ít nhất là đến năm 2027. Đây là nơi tôi đang đọc giữa các dòng. RH có quyền phân bổ Python và giữ các bản vá bảo trì của họ cho chính họ và khách hàng của họ (Python không phải là copyleft). Nhưng, họ là những người tốt và vì vậy có lẽ họ sẵn sàng ngược dòng những thay đổi của họ ít nhất là trong một thời gian nếu vẫn còn một dự án Python sẵn sàng chấp nhận chúng. Một lần nữa, đây là suy đoán của tôi dựa trên cuộc thảo luận ML, chứ không phải những gì RH thực sự đã nói họ sẽ làm. Một sự tương tự có thể được thực hiện cho Rails LTS, một ngã ba thương mại của Rails 2.x mà patio11 có liên quan đến [0]. Chắc chắn ai đó sẽ bước vào để hỗ trợ 2.7, và vì vậy hãy xem những gì chúng ta có thể làm để tránh tình huống trong đó cách duy nhất để tiếp tục chạy 2.7 là đăng ký vào RHEL. Trong khi đó, có một số công ty lớn sử dụng 2.7 rộng rãi trên Windows (ví dụ Enth think, Anaconda) và suy nghĩ rằng ai đó có thể được tìm thấy để sản xuất trình cài đặt Windows một lần nữa, giả sử rằng Python.org vẫn sẽ lưu trữ bản tải xuống. Vì vậy, thực sự những gì đang xảy ra ở đây không phải là rất thú vị. Các ủy viên nòng cốt không làm gì khác hơn là rời khỏi dự án như dự kiến ​​ban đầu. Điều đang xảy ra là họ sẽ bật đèn trong kho điều khiển nguồn và trên máy chủ FTP, để thu được lao động tự do từ những người tại các công ty lớn, những người quan tâm đến việc tiếp tục hỗ trợ 2.7. Thay thế là RH và các nhà cung cấp khác tạo ra các nhánh độc quyền và đắt tiền của Python 2.7. Điều đó có thể xảy ra dù sao đi nữa, nhưng sẽ mất nhiều thời gian hơn để chủ nhân của bạn nhận thấy bạn nên ngừng đóng góp bản vá của mình nếu nhị phân vẫn xuất hiện trên python.org và bạn không phải yêu cầu IT thiết lập SCM và trình theo dõi lỗi, Vân vân. Điều đang xảy ra là họ sẽ bật đèn trong kho điều khiển nguồn và trên máy chủ FTP, để thu được lao động tự do từ những người tại các công ty lớn, những người quan tâm đến việc tiếp tục hỗ trợ 2.7. Thay thế là RH và các nhà cung cấp khác tạo ra các nhánh độc quyền và đắt tiền của Python 2.7. Điều đó có thể xảy ra dù sao đi nữa, nhưng sẽ mất nhiều thời gian hơn để chủ nhân của bạn nhận thấy bạn nên ngừng đóng góp bản vá của mình nếu nhị phân vẫn xuất hiện trên python.org và bạn không phải yêu cầu IT thiết lập SCM và trình theo dõi lỗi, Vân vân. Điều đang xảy ra là họ sẽ bật đèn trong kho điều khiển nguồn và trên máy chủ FTP, để thu được lao động tự do từ những người tại các công ty lớn, những người quan tâm đến việc tiếp tục hỗ trợ 2.7. Thay thế là RH và các nhà cung cấp khác tạo ra các nhánh độc quyền và đắt tiền của Python 2.7. Điều đó có thể xảy ra dù sao đi nữa, nhưng sẽ mất nhiều thời gian hơn để chủ nhân của bạn nhận thấy bạn nên ngừng đóng góp bản vá của mình nếu nhị phân vẫn xuất hiện trên python.org và bạn không phải yêu cầu IT thiết lập SCM và trình theo dõi lỗi, Vân vân.


10

Bài viết này cho biết: Khi Khi 2.7 được phát hành, dòng 2.x sẽ chuyển sang năm năm ở chế độ chỉ sửa lỗi.

Vì vậy, theo như tôi thấy, Python 2.7 là bản phát hành thêm tính năng 2.x cuối cùng và mặc dù các lỗi được tìm thấy sẽ được sửa (trong một thời gian), các tính năng mới chỉ chuyển sang bản phát hành 3.x.


3
Bài báo đó cũng tuyên bố Python 3 giới thiệu Unicode, vì vậy tôi sẽ lấy bất cứ điều gì nó nói với một hạt muối. Nhưng thay đổi "năm năm" thành "ít nhất năm năm" và điều đó đúng.
Lennart Regebro


6

PEP 373 (Lịch phát hành Python 2.7) là nguồn chính thức cho loại thông tin bạn yêu cầu.

Hiện tại nó cho biết "Ngày phát hành dự kiến ​​trong tương lai:"

  • 2.7.7 tháng 5 năm 2014
  • 2.7.8 tháng 11 năm 2014
  • 2.7.9 tháng 5 năm 2015
  • ngoài ngày này, phát hành khi cần thiết

Ngoài ra, nó cho biết "Ngày kết thúc cuộc sống (EOL, ngày hoàng hôn) cho Python 2.7 đã được chuyển sang năm năm sau, đến năm 2020".

Được chỉnh sửa vào tháng 4 năm 2014, theo http://hg.python.org/peps/rev/76d43e52d978


thật là nhẹ nhõm! hy vọng python 3 sẽ chết sau đó hoặc đổi tên thành một thứ như morella để ngăn chặn sự nhầm lẫn.
lowTech

2
@lowtech - Lúc đó, họ có thể đã chuyển sang Python 4 (có thể đưa ra các thay đổi không tương thích ngược mới), nhưng tôi không hy vọng 3 sẽ chết. Dựa trên mức độ nhanh chóng 3 phổ biến trong vài năm qua, tôi hy vọng cộng đồng sẽ có nhiều người sử dụng 3 hơn 2 vào năm 2020. Tôi vẫn đang giữ Python 2, mặc dù ... không đủ thay đổi hấp dẫn để thực hiện Tuy nhiên, nguy cơ nhảy lên 3. Tôi nhập từ tương lai rất nhiều.
ArtOfWarfare

6

Hướng dẫn dành cho nhà phát triển Python liệt kê " Trạng thái của các nhánh Python " từ phiên bản 2.6 cho đến phiên bản hiện tại, bao gồm cả trạng thái hỗ trợ hiện tại của họ với ngày kết thúc.

Hiện được hỗ trợ (sửa lỗi + bảo mật):

  • Python 3.8 (nhánh chính / phát triển hiện tại)
  • Python 3.7
  • Python 3.6
  • Python 2.7 (cho đến 2020-01-01)

Chỉ sửa lỗi bảo mật:

  • Con trăn 3.5
  • Con trăn 3,4

1

Python 2.7 sẽ tồn tại mãi mãi. Có quá nhiều mã cũ sử dụng nó mà không ai muốn viết lại. Đã có một ngã ba tên là Tauthon, nhưng chúng ta có thể thấy những người khác nếu thời hạn vô nghĩa này trở thành sự thật.


2
Nó không "vô nghĩa" đối với các sản phẩm EOL, đó là về phân bổ nguồn lực. Tất nhiên, vì nó là nguồn mở, nó sẽ tồn tại mãi mãi ở dạng hiện tại. Nhưng nó sẽ không được hỗ trợ nữa. Ít nhất là bởi những người bảo trì chính thức. Tôi không thực sự chắc chắn câu hỏi mà bạn đang trả lời ở đây.
lừa dối

Người dùng hỏi bao lâu sẽ có hỗ trợ cho Python2.7. Người dùng không hỏi về hỗ trợ từ các nhà bảo trì chính thức. Với một dự án như thế này, với rất nhiều dòng mã ngoài kia, trên thực tế, sẽ có các bản cập nhật thường xuyên, backport và hỗ trợ tốt cho Python2 mãi mãi, bởi những người không bảo trì. (Tôi đã bị cuốn theo sự thất vọng cá nhân của mình về toàn bộ điều Python3 này, do đó "vô nghĩa").
Tối đa

Tôi cảm thấy bình luận này có liên quan. Tauthon giống hệt Python 2.7 và có vẻ như nó sẽ được hỗ trợ trong một thời gian. Vì vậy, nó là đáng nói.
Phil

Tôi đã tạo ra trải nghiệm rằng các lập trình viên trẻ tuổi không hiểu được sức mạnh và hiệu quả đến từ việc đảm bảo khả năng tương thích ngược. Tôi sẽ không bao giờ hiểu quyết định của Guide van Rossum gây hại, hơn hàng chục ngàn giờ lãng phí cuộc sống, bằng cách cố tình phá vỡ tính tương thích không mang lại lợi ích tốt (cả hiệu suất và khả năng đọc).
Tối đa

1
@Tetragrammaton: Hãy giải thích tại sao không tương thích là một điều tốt. Hãy giải thích "lỗ hổng cơ bản" sẽ là gì. Tôi đã làm việc với Python toàn thời gian hơn 15 năm và tôi không thể thấy một sự khác biệt lớn nào phù hợp với mình. C vẫn như vậy trong 40 năm và vẫn là một ngôn ngữ chính và không thay đổi nhiều. Javascript được cải thiện rất nhiều trong những năm qua và vẫn tương thích ngược. C ++ vẫn tương thích ngược với C. Windows 10 vẫn có thể chạy các chương trình Windows 3. CPU của chúng tôi vẫn chạy mã 8086 từ những năm 70. Chúng tôi tiến bộ mỗi ngày, mà không phá vỡ hỗ trợ.
Tối đa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.