สิ้นสุดการรองรับ python 2.7?


133

มีวัน / เวลาที่ทราบหรือไม่เมื่อ python 2.7 จะไม่ได้รับการสนับสนุนอีกต่อไปเพื่อสนับสนุน python 3


8
คำถามที่ยุติธรรมตราบใดที่ไม่มีซ้ำฉันก็ไม่พบ
Matt Joiner

2
คำถามนี้ดูเหมือนจะไม่ตรงประเด็นเพราะมันเกี่ยวกับการรองรับเวอร์ชันภาษา
bummi

1
ภาพรวมที่ดีที่สุดที่ฉันสามารถหาได้คือตารางนี้: docs.python.org/devguide/#status-of-python-branches
matth

ในช่วงต้นปี 2018 ได้มีการระบุวันที่ดร็อปเดดอย่างใกล้ชิดมากขึ้น: ตอนนี้วันที่ 1 มกราคม 2020 เมื่อการแจกแจงที่มีการเปลี่ยนแปลง "python" ชี้ไปที่ "python3" เป็นคำถามที่เปิดกว้างมากขึ้น
ESR

คำตอบ:


109

ณ วันที่ 13 เมษายน 2557 จาก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
@ พื้นฐานยกเว้นมันไม่เต็มไปด้วยช่องโหว่
Stian OK

5
@StianOK มีส่วนแบ่งที่ยุติธรรม: cvedetails.com/vulnerability-list/vendor_id-10210/…
ขั้นพื้นฐาน

14
@Basic welll ... ที่แบ่งปันนั้นค่อนข้างบาง: 25 ใน python ทุกรุ่น (4% code exec): cvedetails.com/product/18230/Python-Python.html?vendor_id=10210 vs php กับ 408 (27% code 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 และคุณไม่จำเป็นต้องขอให้ IT ตั้งค่า 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 ดังนั้นฉันจะใช้อะไรก็ได้ที่พูดพร้อมกับเม็ดเกลือ แต่เปลี่ยน "ห้าปี" เป็น "อย่างน้อยห้าปี" ก็ถูกต้องแล้ว
Lennart Regebro


6

PEP 373 (Python 2.7 Release Schedule)เป็นแหล่งข้อมูลอย่างเป็นทางการสำหรับประเภทข้อมูลที่คุณขอ

ปัจจุบันมีข้อความว่า "วันที่วางจำหน่ายในอนาคตที่วางแผนไว้:"

  • 2.7.7 พฤษภาคม 2557
  • 2.7.8 พฤศจิกายน 2557
  • 2.7.9 พฤษภาคม 2558
  • หลังจากวันนี้เผยแพร่ตามความจำเป็น

นอกจากนี้ยังระบุว่า"วันที่สิ้นสุดอายุการใช้งาน (EOL, วันที่พระอาทิตย์ตก) สำหรับ Python 2.7 ได้ถูกย้ายไปห้าปีในอนาคตถึงปี 2020"

แก้ไขในเดือนเมษายน 2014 อ้างอิงจากhttp://hg.python.org/peps/rev/76d43e52d978


ค่อยยังชั่ว! หวังว่า python 3 จะตายในตอนนั้นหรือเปลี่ยนชื่อเป็น morella เพื่อหยุดความสับสน
lowtech

2
@lowtech - พวกเขาอาจย้ายไปยัง Python 4 ในตอนนั้น (อาจจะแนะนำการเปลี่ยนแปลงที่เข้ากันไม่ได้ย้อนหลังใหม่) แต่ฉันไม่คิดว่า 3 จะตาย จากความนิยมที่เพิ่มขึ้นอย่างรวดเร็วในช่วงไม่กี่ปีที่ผ่านมาฉันคาดว่าชุมชนจะมีผู้คนใช้งาน 3 คนมากกว่า 2 คนภายในปี 2020 ฉันยังคงยึด Python 2 ไว้แม้ว่า ... ยังไม่สามารถทำการเปลี่ยนแปลงที่น่าสนใจได้ ความเสี่ยงของการกระโดดไปที่ 3 ฉันนำเข้าจากอนาคตมากแม้ว่า
ArtOfWarfare

6

คู่มือสำหรับนักพัฒนา Python จะแสดงรายการ " สถานะของสาขา Python " ตั้งแต่เวอร์ชัน 2.6 จนถึงเวอร์ชันปัจจุบันรวมถึงสถานะการสนับสนุนปัจจุบันพร้อมวันที่สิ้นสุดอายุการใช้งาน

ได้รับการสนับสนุนในปัจจุบัน (ข้อบกพร่อง + การแก้ไขความปลอดภัย):

  • Python 3.8 (สาขาหลัก / การพัฒนาปัจจุบัน)
  • Python 3.7
  • Python 3.6
  • Python 2.7 (จนถึง 2020-01-01)

แก้ไขความปลอดภัยเท่านั้น:

  • Python 3.5
  • Python 3.4

1

Python 2.7 จะอยู่ตลอดไป มีรหัสเก่ามากเกินไปที่ใช้รหัสนี้ซึ่งไม่มีใครต้องการเขียนซ้ำ มีส้อมที่เรียกว่า Tauthon อยู่แล้ว แต่เราอาจเห็นคนอื่นได้หากเส้นตายที่ไร้จุดหมายนี้เป็นจริง


2
ผลิตภัณฑ์ EOL ไม่ใช่เรื่อง "ไร้จุดหมาย" แต่เกี่ยวกับการจัดสรรทรัพยากร แน่นอนว่าเนื่องจากเป็นโอเพ่นซอร์สมันจะอยู่ตลอดไปในรูปแบบปัจจุบัน แต่จะไม่ได้รับการสนับสนุนอีกต่อไป อย่างน้อยโดยผู้ดูแลอย่างเป็นทางการ ฉันไม่แน่ใจจริงๆว่าคุณกำลังตอบคำถามอะไรที่นี่
หลอกลวง

ผู้ใช้ถามว่าจะรองรับ Python2.7 ได้นานแค่ไหน ผู้ใช้ไม่ได้ถามเกี่ยวกับการสนับสนุนจากผู้ดูแลอย่างเป็นทางการ ด้วยโครงการเช่นนี้โดยมีโค้ดหลายบรรทัดในทางปฏิบัติจะมีการอัปเดตเป็นประจำ backport และการสนับสนุนที่ดีสำหรับ Python2 ตลอดไปโดยผู้ที่ไม่ได้ดูแล (ฉันรู้สึกหงุดหงิดส่วนตัวเกี่ยวกับ Python3 ทั้งหมดนี้ดังนั้นจึง "ไม่มีจุดหมาย")
สูงสุด

ฉันรู้สึกว่าความคิดเห็นนี้มีความเกี่ยวข้อง Tauthon นั้นเหมือนกับ Python 2.7 และดูเหมือนว่ามันจะได้รับการสนับสนุนไประยะหนึ่งแล้ว ดังนั้นจึงเป็นมูลค่าการกล่าวขวัญ
ฟิล

ฉันได้สร้างประสบการณ์ที่โปรแกรมเมอร์รุ่นเยาว์ไม่เข้าใจถึงพลังและประสิทธิภาพที่มาจากการรับประกันความเข้ากันได้แบบย้อนกลับ ฉันจะไม่มีวันเข้าใจการตัดสินใจของ Guide van Rossum ในการก่อให้เกิดอันตรายเป็นเวลากว่าหลายหมื่นชั่วโมงของชีวิตที่สูญเปล่าโดยตั้งใจทำลายความเข้ากันได้โดยไม่ได้รับประโยชน์ (ทั้งประสิทธิภาพและความสามารถในการอ่าน)
สูงสุด

1
@Tetragrammaton: โปรดอธิบายว่าทำไมการไม่เข้ากันเป็นสิ่งที่ดี โปรดอธิบายว่า "ข้อบกพร่องพื้นฐาน" คืออะไร ฉันทำงานกับ Python เต็มเวลามานานกว่า 15 ปีแล้วและฉันไม่เห็นความแตกต่างที่สำคัญสำหรับฉัน C อยู่เหมือนเดิมเป็นเวลา 40 ปีและยังคงเป็นภาษาหลักและไม่ได้เปลี่ยนแปลงมากนัก Javascript ได้รับการปรับปรุงให้ดีขึ้นอย่างมากในช่วงหลายปีที่ผ่านมาและยังสามารถใช้งานร่วมกันได้ C ++ ยังคงเข้ากันได้กับ C. Windows 10 ยังสามารถรันโปรแกรม Windows 3 ได้ ซีพียูของเรายังคงรันโค้ด 8086 จากยุค 70 เราก้าวหน้าทุกวันโดยไม่ทำลายการสนับสนุน
สูงสุด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.