Akhir dukungan untuk python 2.7?

133

Apakah ada tanggal / kerangka waktu yang diketahui ketika python 2.7 tidak akan didukung lagi yang mendukung python 3?

Stiivi
sumber
8
Pertanyaan yang wajar selama tidak ada duplikat, saya tidak bisa menemukannya.
Matt Joiner
2
Pertanyaan ini tampaknya di luar topik karena ini tentang dukungan versi bahasa
bummi
1
Gambaran terbaik yang bisa saya temukan adalah tabel ini: docs.python.org/devguide/#status-of-python-branches
matth
Pada awal 2018 tanggal drop-dead telah ditentukan lebih dekat: Sekarang 1 Januari 2020. Ketika distribusi dengan perubahan "python" untuk menunjuk ke "python3" adalah pertanyaan yang lebih terbuka.
ESR

Jawaban:

109

Mulai 13 April 2014, dari http://hg.python.org/peps/rev/76d43e52d978 (PEP 373, Jadwal Rilis Python 2.7):

Tanggal Akhir Kehidupan (EOL, tanggal matahari terbenam) untuk Python 2.7 telah dipindahkan lima tahun ke depan, hingga tahun 2020. Keputusan ini dibuat untuk mengklarifikasi status Python 2.7 dan meredakan kekhawatiran bagi pengguna yang belum dapat bermigrasi ke Python 3 Lihat juga PEP 466 .

Marco Mariani
sumber
23
@Basic Kecuali itu tidak penuh dengan kerentanan.
Stian OK
5
@StianOK Ini punya bagian yang adil: cvedetails.com/vulnerability-list/vendor_id-10210/…
Basic
14
@Basic welll ... pembagian itu sangat tipis: 25 di atas semua versi python (4% kode exec): cvedetails.com/product/18230/Python-Python.html?vendor_id=10210 vs php dengan 408 (27% kode exec ): cvedetails.com/product/128/PHP-PHP.html?vendor_id=74 atau Java dengan 438 (kode 3% exec): cvedetails.com/product/19117/Oracle-JRE.html?vendor_id=93 ... Jadi dengan "bagiannya yang adil" Anda harus berarti "bagian yang sangat rendah". Selain itu, semua kecuali 3 dari kerentanan itu juga berada dalam kerentanan dalam versi 3.x dan semua versi terbaru diperbaiki.
dhj
2
@ Basic apakah Anda memiliki saran yang lebih baik untuk keamanan dasar?
dhj
2
@ dhj Ya ... Bukan Java! Oke, itu tidak adil. Mengesampingkan lelucon, jawaban jujurnya adalah tidak, saya tidak. Itu sebabnya saya memilih "bagian yang adil". Tidak ada bahasa di luar sana yang tidak memiliki kerentanan yang diketahui (dan tidak diketahui). Saya akan mengatakan bahwa sebagai aturan umum semakin banyak menggunakan bahasa kita, semakin banyak kerentanan yang diketahui, murni sebagai fungsi pengawasan alias penggunaan / penghargaan dari eksploitasi. Saya tidak mengatakan Python lebih buruk daripada bahasa lain dari sudut pandang keamanan tetapi juga tidak lebih baik. Satu-satunya jawaban nyata adalah memprogram pertahanan dan memiliki keamanan yang mendalam.
Dasar
29

Pada bulan Mei 2010, Firman Tuhan adalah bahwa rilis patchlevel untuk Python 2.7 mungkin akan dibuat setidaknya selama 6 tahun .

Jadi, mungkin 2016, mungkin nanti.

Sunting: Didorong kembali ke 2020. Lihat revisi PEP 373, ditautkan dengan jawaban lain.

Frédéric Hamidi
sumber
2
Bagi siapa pun yang menemukan jawaban ini di masa mendatang, seperti yang diumumkan oleh BDFL sendiri di PyCon 2014, 2,7 pemeliharaan diperpanjang hingga 2020 sekarang.
Silas Ray
15

Anda harus membaca ini dengan seksama (ref: https://news.ycombinator.com/item?id=7582300 ):

Ada banyak komentar di sini dari orang-orang yang tidak ada dalam daftar python-dev dan tidak benar-benar mengerti apa arti perbedaan ini sebenarnya. Pengembang inti tidak diharuskan untuk mempertahankan 2,7 pasca-2015, dan kebanyakan dari mereka tidak akan terlibat di dalamnya. Bagian itu belum berubah. Apa yang terjadi adalah bahwa Red Hat sedang bersiap untuk memotong rilis RHEL 7, yang AFAIK tergantung pada berapa banyak Anda membayar mereka, mereka mendukung selama 13 tahun. Jadi mereka perlu mencari cara untuk mendukung 2.7 sendiri setidaknya sampai tahun 2027. Di sinilah saya membaca yang tersirat. RH berada dalam hak mereka untuk melakukan percabangan Python dan menjaga tambalan perawatan mereka untuk diri mereka sendiri dan pelanggan mereka (Python bukan copyleft). Tapi, mereka adalah orang baik dan mungkin mereka bersedia untuk mengubah perubahan mereka setidaknya untuk sementara waktu jika masih ada proyek Python yang mau menerimanya. Sekali lagi, ini adalah spekulasi saya berdasarkan diskusi ML, bukan apa yang sebenarnya dikatakan RH akan mereka lakukan. Sebuah analogi dapat dibuat untuk Rails LTS, garpu komersial Rails 2.x yang patio11 terlibat dalam [0]. Mau tidak mau seseorang akan melangkah untuk mendukung 2.7, jadi mari kita lihat apa yang bisa kita lakukan untuk menghindari situasi di mana satu-satunya cara untuk tetap berjalan 2.7 adalah berlangganan RHEL. Sementara itu, ada beberapa perusahaan besar yang menggunakan 2,7 secara ekstensif pada Windows (misalnya Enthought, Anaconda) dan pemikiran bahwa seseorang mungkin dapat ditemukan untuk menghasilkan installer Windows sesekali, dengan asumsi bahwa Python.org masih akan menjadi tuan rumah unduhan. Jadi sebenarnya apa yang terjadi di sini tidak terlalu menarik. Komuter inti tidak melakukan hal yang berbeda dari meninggalkan proyek sesuai rencana semula. Apa yang terjadi adalah bahwa mereka akan membiarkan lampu menyala di repositori kontrol sumber dan di server FTP, sehingga dapat menangkap tenaga kerja gratis dari orang-orang di perusahaan besar yang memiliki minat untuk terus mendukung 2.7. Alternatifnya adalah bahwa RH dan vendor lain membuat garpu Python 2.7 yang dipatenkan dan mahal. Lagipula itu mungkin akan terjadi, tetapi majikan Anda perlu waktu lebih lama untuk memperhatikan bahwa Anda harus berhenti memberikan kontribusi patch Anda kembali jika binari masih muncul di python.org dan Anda tidak perlu meminta IT untuk mengatur SCM dan pelacak bug, dll. Apa yang terjadi adalah bahwa mereka akan membiarkan lampu menyala di repositori kontrol sumber dan di server FTP, sehingga dapat menangkap tenaga kerja gratis dari orang-orang di perusahaan besar yang memiliki minat untuk terus mendukung 2.7. Alternatifnya adalah bahwa RH dan vendor lain membuat garpu Python 2.7 yang dipatenkan dan mahal. Lagipula itu mungkin akan terjadi, tetapi majikan Anda perlu waktu lebih lama untuk memperhatikan bahwa Anda harus berhenti memberikan kontribusi patch Anda kembali jika binari masih muncul di python.org dan Anda tidak perlu meminta IT untuk mengatur SCM dan pelacak bug, dll. Apa yang terjadi adalah bahwa mereka akan membiarkan lampu menyala di repositori kontrol sumber dan di server FTP, sehingga dapat menangkap tenaga kerja gratis dari orang-orang di perusahaan besar yang memiliki minat untuk terus mendukung 2.7. Alternatifnya adalah bahwa RH dan vendor lain membuat garpu Python 2.7 yang dipatenkan dan mahal. Lagipula itu mungkin akan terjadi, tetapi majikan Anda perlu waktu lebih lama untuk memperhatikan bahwa Anda harus berhenti memberikan kontribusi patch Anda kembali jika binari masih muncul di python.org dan Anda tidak perlu meminta IT untuk mengatur SCM dan pelacak bug, dll.

Navid Rahimi
sumber
10

Artikel ini mengatakan: "Ketika 2.7 dirilis, baris 2.x akan pindah ke lima tahun mode bug-only fix."

Jadi, sejauh yang saya lihat, Python 2.7 adalah rilis penambahan fitur 2.x terakhir, dan meskipun bug yang ditemukan akan diperbaiki (untuk beberapa waktu), fitur baru hanya pergi ke rilis 3.x.

Arseny
sumber
3
Artikel itu juga mengklaim Python 3 memperkenalkan Unicode, jadi saya akan mengambil apa pun yang dikatakannya dengan sebutir garam. Tetapi ubah "lima tahun" menjadi "setidaknya lima tahun" dan itu benar.
Lennart Regebro
7

Ada juga jam hitung mundur yang tidak menyenangkan untuk EOS pada tahun 2020.

npit
sumber
6

PEP 373 (Jadwal Rilis Python 2.7) adalah sumber resmi untuk jenis informasi yang Anda minta.

Saat ini tertulis "Direncanakan tanggal rilis mendatang:"

  • 2.7.7 Mei 2014
  • 2.7.8 November 2014
  • 2.7.9 Mei 2015
  • setelah tanggal ini, rilis sesuai kebutuhan

Juga, tertulis "Tanggal Akhir Kehidupan (EOL, tanggal matahari terbenam) untuk Python 2.7 telah dipindahkan lima tahun ke depan, hingga 2020."

Diedit pada bulan April 2014, menurut http://hg.python.org/peps/rev/76d43e52d978

Jan-Philip Gehrcke
sumber
apa yang lega! semoga python 3 akan mati saat itu atau diubah namanya menjadi sesuatu seperti morella untuk menghentikan kebingungan.
lowtech
2
@lowtech - Mereka mungkin telah pindah ke Python 4 saat itu (mungkin memperkenalkan perubahan baru yang tidak kompatibel mundur), tapi saya tidak berharap 3 mati. Berdasarkan seberapa cepat 3 telah meningkat popularitasnya selama beberapa tahun terakhir, saya berharap komunitas akan memiliki lebih banyak orang menggunakan 3 dari 2 pada tahun 2020. Saya masih berpegang pada Python 2, meskipun ... tidak cukup perubahan yang meyakinkan untuk membuat risiko melompat ke 3. Saya mengimpor dari masa depan banyak.
ArtOfWarfare
6

Panduan Pengembang Python mencantumkan " Status cabang Python " dari versi 2.6 hingga versi saat ini, termasuk status dukungan mereka saat ini dengan tanggal Akhir masa pakainya.

Saat ini didukung (perbaikan bug + keamanan):

  • Python 3.8 (cabang master / pengembangan saat ini)
  • Python 3.7
  • Python 3.6
  • Python 2.7 (hingga 2020-01-01)

Hanya perbaikan keamanan:

  • Python 3.5
  • Python 3.4
chrki
sumber
1

Python 2.7 akan ada selamanya. Ada terlalu banyak kode lama yang menggunakannya sehingga tidak ada yang mau menulis ulang. Sudah ada garpu yang disebut Tauthon, tetapi kita dapat melihat orang lain jika tenggat waktu yang tidak berarti ini menjadi nyata.

Maks
sumber
2
Ini bukan "tidak berguna" untuk produk EOL, ini tentang alokasi sumber daya. Tentu saja, karena ini open source, itu akan ada selamanya dalam bentuk saat ini. Tetapi itu tidak akan didukung lagi. Setidaknya oleh pengelola resmi. Saya tidak begitu yakin pertanyaan apa yang Anda jawab di sini.
deceze
Pengguna bertanya berapa lama akan ada dukungan untuk Python2.7. Pengguna tidak bertanya tentang dukungan dari pengelola resmi. Dengan proyek seperti ini, dengan banyak baris kode di luar sana, dalam praktiknya, akan ada pembaruan rutin, backports, dan dukungan yang baik untuk Python2 selamanya, oleh non-pengelola. (Saya terbawa oleh frustrasi pribadi saya tentang semua hal Python3 ini, karenanya "tidak ada gunanya").
Max
Saya merasa komentar ini relevan. Tauthon identik dengan Python 2.7 dan sepertinya akan didukung untuk sementara waktu. Jadi, perlu disebutkan.
Phil
Saya telah membuat pengalaman bahwa programmer yang lebih muda tidak memahami kekuatan dan efisiensi yang datang dari jaminan kompatibilitas ke belakang. Saya tidak akan pernah mengerti keputusan Guide van Rossum untuk menyebabkan kerugian, lebih dari puluhan ribu jam hidup yang terbuang sia-sia, dengan sengaja melanggar kompatibilitas tanpa manfaat yang baik (baik kinerja maupun keterbacaan).
Maks
1
@Tetragrammaton: Tolong jelaskan mengapa tidak kompatibel adalah hal yang baik. Tolong jelaskan seperti apa "cacat mendasar" itu. Saya telah bekerja dengan Python penuh waktu selama 15 tahun dan saya tidak bisa melihat perbedaan besar yang relevan bagi saya. C tetap sama selama 40 tahun dan masih merupakan bahasa utama dan belum banyak berubah. Javascript meningkat pesat selama bertahun-tahun dan masih kompatibel ke belakang. C ++ masih kompatibel dengan C. Windows 10 masih dapat menjalankan program Windows 3. CPU kami masih menjalankan kode 8086 dari tahun 70-an. Kami membuat kemajuan setiap hari, tanpa putus dukungan.
Maks