Python 2.7 için desteğin sonu mu?


133

Python 2.7 artık python 3 lehine desteklenmeyeceği bilinen bir tarih / zaman dilimi var mı?


8
Adil bir soru olduğu sürece yinelenen yok, hiçbirini bulamadım.
Matt Joiner

2
Bu soru konu dışı gibi görünüyor çünkü bir dil versiyonunun desteği ile ilgili
bummi


2018'in başından itibaren son teslim tarihi daha yakından belirtildi: 1 Ocak 2020. Şimdi "python" ile "python3" u işaret eden dağılımlar daha açık bir sorudur.
ESR

Yanıtlar:


109

13 Nisan 2014 itibariyle, http://hg.python.org/peps/rev/76d43e52d978 (PEP 373, Python 2.7 Sürüm Programı):

Python 2.7 için Kullanım Ömrü Sonu (EOL, gün batımı tarihi) beş yıl sonra 2020'ye taşındı. Bu karar Python 2.7'nin durumunu netleştirmek ve henüz Python 3'e geçemeyen kullanıcılar için endişeleri hafifletmek için verildi. Ayrıca bkz. PEP 466 .


23
@Basic Güvenlik açıklarıyla dolu olması dışında.
Stian OK


14
@Basic welll ... bu pay oldukça zayıf: tüm python sürümlerinde 25 (% 4 kod yürütme ): cvedetails.com/product/18230/Python-Python.html?vendor_id=10210 408 ile php'ye karşı (% 27 kod exec ): cvedetails.com/product/128/PHP-PHP.html?vendor_id=74 veya 438 ile Java (% 3 kod yürütme ): cvedetails.com/product/19117/Oracle-JRE.html?vendor_id=93 ... Yani "adil payı" ile "oldukça düşük bir pay" anlamına gelmelisiniz. Ayrıca, bu güvenlik açıklarının 3 dışında tümü 3.x sürümünde de güvenlik açıkları içindeydi ve tüm güncel sürümler düzeltildi.
DHJ

2
@Basic, güvenlik temelleri için daha iyi bir öneriniz var mı?
DHJ

2
@dhj Evet ... Java değil! Tamam, bu haksızlık. Şaka / saygısızlık bir yana, dürüst cevap hayır, bilmiyorum. Bu yüzden "adil pay" ile gittim. Güvenlik açıkları bilinmeyen (ve bilinmeyen) bir dil yok. Genel bir kural olarak, bize bir dili ne kadar yaygın kullanırsak, o kadar çok bilinen güvenlik açıklarının, yalnızca incelemenin, yani kullanım / ödülün istismar edilmesinin bir fonksiyonu olarak olduğunu söyleyebilirim. Python'un güvenlik açısından diğer dillerden daha kötü olduğunu söylemiyorum ama daha da iyi değil. Tek gerçek cevap savunmacı bir şekilde programlamak ve derinlemesine güvenlik sağlamaktır.
Temel



15

bunu dikkatlice okumalısınız (ref: https://news.ycombinator.com/item?id=7582300 ):

Burada python-dev listesinde olmayan ve bu farkın gerçekte ne anlama geldiğini anlamayan insanlardan çok sayıda yorum var. Çekirdek geliştiricilerin 2015 sonrası 2.7'yi korumasına gerek yoktur ve çoğu buna dahil olmayacaktır. Bu kısım değişmedi. Olan şey, Red Hat'ın AFAIK'in 13 yıl boyunca destekledikleri parayı ne kadar ödediğinize bağlı olarak bir RHEL 7 sürümünü kesmeye hazırlanıyor olması. Bu yüzden 2.7'yi en azından 2027'ye kadar nasıl destekleyeceklerini bulmaları gerekecek. İşte satırlar arasında okuduğum yer. RH, Python'u çatallama ve bakım yamalarını kendileri ve müşterileri için tutma hakları içinde (Python'un copyleft değil). Fakat, Onlar iyi adamlar ve belki de onları kabul etmeye istekli bir Python projesi varsa, belki de en azından bir süre için değişikliklerini yukarı akım etmeye hazırlar. Yine, RH'nin yaptıklarını söylemediği şey değil, ML tartışmasına dayanan spekülasyonum. [0] 'da patio11'in yer aldığı Rails 2.x'in ticari bir çatalı olan Rails LTS'ye bir benzetme yapılabilir. Kaçınılmaz olarak birileri 2.7'yi desteklemek için adım atacak ve bu yüzden 2.7'yi çalıştırmaya devam etmenin tek yolunun RHEL'e abone olmak olduğu bir durumdan kaçınmak için neler yapabileceğimize bakalım. Bu arada, Windows'ta 2.7 (yaygın olarak Enthought, Anaconda) üzerinde yaygın olarak kullanılan bazı büyük şirketler var ve Python.org'un hala bir indirmeye ev sahipliği yapacağı varsayılarak, birinin muhtemelen bir zamanlar bir Windows yükleyici ürettiği tespit ediliyor. Yani gerçekten burada olan çok heyecan verici değil. Çekirdek komisyonlar, projeyi başlangıçta planlandığı gibi bırakmaktan farklı bir şey yapmıyorlar. Olan şey, kaynak kontrol havuzunda ve FTP sunucusunda ışıkları açık bırakacak, böylece 2.7'yi desteklemeye devam etmekle ilgilenen büyük şirketlerden insanların ücretsiz işgücünü yakalamak. Alternatif, RH ve diğer satıcıların Python 2.7'ye ait özel ve pahalı çatallar yaratmalarıdır. Bu yine de gerçekleşebilir, ancak ikili dosyalar python.org'da hala görünüyorsa ve BT'den SCM ve hata izleyici kurmasını istemiyorsanız, işvereninizin yamalarınıza katkıda bulunmayı bırakmanız gerektiğini fark etmesi daha uzun sürecektir, vb. Olan şey, kaynak kontrol havuzunda ve FTP sunucusunda ışıkları açık bırakacak, böylece 2.7'yi desteklemeye devam etmekle ilgilenen büyük şirketlerden insanların ücretsiz işgücünü yakalamak. Alternatif, RH ve diğer satıcıların Python 2.7'ye ait özel ve pahalı çatallar yaratmalarıdır. Bu yine de gerçekleşebilir, ancak ikili dosyalar python.org'da hala görünüyorsa ve BT'den SCM ve hata izleyici kurmasını istemiyorsanız, işvereninizin yamalarınıza katkıda bulunmayı bırakmanız gerektiğini fark etmesi daha uzun sürecektir, vb. Olan şey, kaynak kontrol havuzunda ve FTP sunucusunda ışıkları açık bırakacak, böylece 2.7'yi desteklemeye devam etmekle ilgilenen büyük şirketlerden insanların ücretsiz işgücünü yakalamak. Alternatif, RH ve diğer satıcıların Python 2.7'ye ait özel ve pahalı çatallar yaratmalarıdır. Bu yine de gerçekleşebilir, ancak ikili dosyalar python.org'da hala görünüyorsa ve BT'den SCM ve hata izleyici kurmasını istemiyorsanız, işvereninizin yamalarınıza katkıda bulunmayı bırakmanız gerektiğini fark etmesi daha uzun sürecektir, vb.


10

Bu makale şunları söylüyor: “2.7 sürümü yayınlandığında, 2.x satırı yalnızca beş yıllık bir hata düzeltme moduna geçecektir.”

Gördüğüm kadarıyla, Python 2.7 son 2.x özellik ekleme sürümü oldu ve bulunan hatalar düzeltilecek olsa da (bir süre için) yeni özellikler sadece 3.x sürümlerine gidiyor.


3
Bu makale ayrıca Python 3'ün Unicode'u tanıttığını iddia ediyor, bu yüzden söylediklerini bir tuz tanesi ile alacağım. Ancak "beş yıl" ı "en az beş yıl" olarak değiştirin ve bu doğrudur.
Lennart Regebro


6

PEP 373 (Python 2.7 Sürüm Programı) , istediğiniz bilgi türü için resmi kaynaktır.

Şu anda "Planlanan gelecekteki çıkış tarihleri:"

  • 2.7.7 Mayıs 2014
  • 2.7.8 Kasım 2014
  • 2.7.9 Mayıs 2015
  • bu tarihten sonra, gerektiğinde yayınlanır

Ayrıca, "Python 2.7 için Kullanım Ömrü Sonu tarihi (EOL, gün batımı tarihi) beş yıl 2020 yılına taşındı."

Http://hg.python.org/peps/rev/76d43e52d978'e göre Nisan 2014'te düzenlendi.


ne rahatlama! umarım python 3 o zamana kadar ölür veya karışıklığı durdurmak için morella gibi bir isme dönüştürülür.
lowtech

2
@lowtech - O zamana kadar (muhtemelen geriye yeni uyumsuz değişiklikler getirerek) Python 4'e geçmiş olabilirler, ancak 3'ün ölmesini beklemiyorum. 3'ün popülaritesinin son birkaç yılda ne kadar hızlı arttığına bağlı olarak, toplumun 2020'ye kadar 2'den 3'ü kullanan daha fazla insana sahip olacağını umuyorum. 3. Ben ithalat atlama riski ileride olsa bir sürü.
ArtOfWarfare

6

Python Geliştirici Kılavuzu, 2.6 sürümünden geçerli sürüme kadar " Python dallarının durumu" nu , kullanım ömrü sonu tarihleriyle ilgili mevcut destek durumları da dahil olmak üzere listeler .

Şu anda desteklenmektedir (hata + güvenlik düzeltmeleri):

  • Python 3.8 (mevcut ana / geliştirme dalı)
  • Python 3.7
  • Python 3.6
  • Python 2.7 (2020-01-01'e kadar)

Yalnızca güvenlik düzeltmeleri:

  • Python 3.5
  • Python 3.4

1

Python 2.7 sonsuza dek etrafta olacak. Kimsenin yeniden yazmak istemediği, onu kullanan çok eski kod var. Tauthon adında bir çatal var, ancak bu anlamsız son tarih gerçekleşirse başkalarını görebiliriz.


2
EOL ürünleri için "anlamsız" değil, kaynak tahsisi ile ilgilidir. Tabii ki, açık kaynak olduğu için, şimdiki haliyle sonsuza kadar sürecek. Ancak artık desteklenmeyecek . En azından resmi koruyucular tarafından. Burada hangi soruyu cevapladığınızdan emin değilim.
deceze

Kullanıcı Python2.7 için ne kadar süre destek olacağını sordu. Kullanıcı resmi destekçilerinden destek istemedi. Böyle bir proje ile, orada birçok kod satırı ile, pratikte, bakımcılar tarafından düzenli olarak güncellemeler, backport'lar ve Python2 için iyi destek olacaktır. (Ben bütün bu Python3 şey, bu yüzden "anlamsız" hakkında kişisel hayal kırıklığına taşındı).
Max

Bu yorumun alakalı olduğunu düşünüyorum. Tauthon, Python 2.7 ile aynıdır ve bir süre desteklenecek gibi görünüyor. Yani, kayda değer.
Phil

Genç programcıların geriye dönük uyumluluğu garanti etmenin getirdiği gücü ve verimliliği anlamadığı bir deneyim yaşadım. Guide van Rossum'un on binlerce saatten fazla boşa harcanan ömre zarar verme kararını, iyi bir fayda sağlamak için kasıtlı olarak uyumluluğu bozarak (ne performans ne de okunabilirlik) asla anlamayacağım.
Max

1
@ Tetragrammaton: Lütfen uyumlu olmamanın neden iyi olduğunu açıklayın. Lütfen "temel kusurun" ne olacağını açıklayın. Python ile 15 yıldır tam zamanlı çalışıyorum ve benim için önemli bir fark göremiyorum. C 40 yıl boyunca aynı kaldı ve hala önemli bir dil ve çok fazla değişmedi. Javascript yıllar içinde son derece gelişti ve hala geriye dönük olarak uyumlu. C ++ hala C ile geriye doğru uyumludur. Windows 10 hala Windows 3 programlarını çalıştırabilir. CPU'larımız hala 70'lerden 8086 kodu çalıştırıyor. Desteği kesmeden her gün ilerleme kaydediyoruz.
Max
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.