Haruskah kita menggunakan python 2.6 atau 2.7 atau 3.x? [Tutup]

25

Versi python yang saya gunakan adalah 2.6 , dan ada 2.7 dan 3.x. Biasanya saya menggunakan python untuk beberapa program / cuplikan sepele. Saya menyadari ada beberapa perbedaan utama antara 2.x dan 3.x. Saya benar-benar ingin tahu, jika saya akan membuat proyek yang lebih besar dengan python, versi python mana yang harus saya gunakan?

Haruskah saya memutakhirkan ke 2.7, atau pergi ke 3.x atau tetap dengan 2.6?

Keputusan harus didasarkan pada ketentuan-ketentuan ini:

  1. Jumlah pengguna di internet sebagai komunitas. Semakin banyak pengguna berarti semakin banyak paket sumber terbuka dan bantuan dari mereka.

  2. Fungsionalitas.

  3. Dukungan dari tim pengembangan resmi.

  4. Kompatibilitas untuk modul / paket yang ada.

Terima kasih!

lamwaiman1988
sumber
5
Bisakah seseorang menunjukkan perubahan bermanfaat yang dibuat oleh python 3.x?
lamwaiman1988
1
Anda menyebutkan bahwa Anda tahu kompatibilitas dengan modul yang ada adalah masalah, tetapi Anda tidak memberi tahu kami modul apa yang diandalkan oleh kode Anda. Pertanyaan ini tidak bisa dijawab.
Wooble
2
menyimpang dari topik; rekomendasi DAN gorila vs hiu dalam satu pertanyaan wow!
3
Pertanyaan ini dan jawabannya hanya akan berguna untuk rentang waktu yang kecil. Apa yang masuk akal sekarang mungkin tidak masuk akal setahun dari sekarang karena 3.x menjadi lebih dewasa.
Bryan Oakley
Memperhatikan bahwa (a) pertanyaannya masih relevan di tahun 2014 (mis. RobotFramework tidak berfungsi dengan Python 3) dan (b) menutup pertanyaan ini membuat halaman ini tetap basi karena - meskipun muncul tinggi di hasil pencarian google - jawaban baru tidak dapat diposkan.
Bob Stein

Jawaban:

27

Saya akan menyarankan Python 2.7 sendiri. Ini rilis terbaru dalam seri Python 2.x. Sebagian besar modul Python dibuat untuk bekerja dengan Python 2.x. Ada gerakan untuk mencoba dan pindah ke Python 3, tetapi modul apa pun dari Python 3 ditulis untuk 2 dan 3. Ingatlah untuk tidak menggunakan fitur lama yang tidak tersedia di Python 3, sehingga Anda dapat 2to3 kode Anda untuk membuatnya berjalan di Python 3.

Jika Anda menggunakan Python 3, Anda adalah salah satu pengguna awal dan Anda mungkin harus memberi tahu orang lain untuk mengunduh Python 3 (banyak komputer hanya memiliki Python 2). Di sisi lain, fitur baru hanya akan datang ke Python 3. Python 2 secara permanen dalam pemeliharaan. Jadi saya tidak akan menyarankan masih menggunakan Python 2 dalam 10 tahun.

Jika Anda ingin mengawasi paket-paket Python dan kompatibilitasnya dengan Python 3, Anda dapat mengawasi situs ini: http://python3wos.appspot.com/

jsternberg
sumber
Django tidak mendukung 3.x? Jadi pengguna yang terbiasa dengan Django tidak bisa menggunakan 3.x?
lamwaiman1988
hei biasanya ketika versi baru dirilis itu berarti lebih baik dari yang sebelumnya. Dan mengapa python dirilis dalam seri 2.x dan yang lainnya dalam seri 3.x? Apa perbedaan sebenarnya di dalamnya.
PANAS
4
Python 3 membuat beberapa perubahan pada bahasa yang bermanfaat, tetapi mereka tidak kompatibel dengan beberapa fitur di Python 2. Jadi beberapa hal telah dihapus dan beberapa ditambahkan (dan hal-hal yang dihapus membuat mereka tidak kompatibel).
jsternberg
+1 untuk 2.7, rasio kompatibilitas terbaik (setidaknya untuk perpustakaan yang saya gunakan) sampai 3 lebih luas
wildpeaks
@Ashinkn Perubahan dapat ditemukan di sini docs.python.org/3.0/whatsnew/3.0.html . Perubahan pemecahan kompatibilitas utama adalah beralih dari menggunakan Unicode (sebagai lawan ASCII) sebagai tipe string default. Di mana orang menggunakan string sebagai byte [] sebelum ada jenis bytearray baru yang digunakan sebagai gantinya. Juga, setiap string 2x yang secara eksplisit didefinisikan sebagai unicode perlu diubah ke string biasa.
Evan Plaice
19

Pendapat saya adalah kita harus mulai mengarahkan orang ke Python 3 dan jika ada pustaka yang tidak kompatibel dengan Python 3, kita harus mulai membuat itu tidak terjadi.

Python 3 adalah masa depan bahasa, dan semakin banyak kode yang kita gunakan, semakin baik.

Musaab
sumber
Yang kita butuhkan adalah juru bahasa tunggal yang kompatibel dengan kedua versi python dan dapat menguraikannya dengan cerdas. Artinya, kata interpreter akan mengkompilasi kedua python2 dan python3 ke dalam bytecode yang sama sehingga mereka kompatibel, sehingga memungkinkan untuk menggunakan python3 dengan pustaka python2. Jika C, C ++, dan Java bisa melakukannya, maka Python juga bisa.
Braden Best
4

Django sekarang "secara eksperimental" mendukung Python 3.2+ seperti yang dapat Anda lihat dari pos mereka di sini .

Mengingat itu, dan fakta bahwa Python 3.x adalah masa depan bahasa, saya akan mengatakan Python 3 adalah yang terbaik sekarang.

CorayThan
sumber
2

Untuk setiap proyek, periksa apakah semua perpustakaan yang diperlukan untuk suatu proyek sudah mendapat dukungan 3.x python kemudian gunakan python 3.x karena ini adalah masa depan dan itu adalah versi stabil resmi terakhir.

Lain gunakan apa pun yang Anda butuhkan untuk kompatibilitas perpustakaan.

cnd
sumber
2

Tidak masalah apakah Anda menggunakan Python 2.7 atau Python 3 Jika Anda tidak menggunakan fitur-fitur lama di Python 2.7, Anda bisa 2to3 kode Anda untuk membuatnya berjalan di Python 3.

Ramchandra Apte
sumber
0

Saya berada di kapal yang sama sebelumnya dan inilah yang saya temukan. Python 2.6, 2.7, dan 3.2 dapat diinstal berdampingan menggunakan MacPorts dan dapat dengan mudah diaktifkan. (Saya pengguna Mac). Cari alternatif untuk Macports untuk platform Anda.

ThinkCode
sumber
0

Sampai suatu jembatan dikembangkan secara intrinsik dalam 3.x untuk memungkinkan penggunaan transparan dari 2,7 paket suatu langkah penuh dengan bahaya karena bahasanya benar-benar semua tentang apa yang telah dikontribusikan kepadanya. Pertimbangan formal dan kemurnian dapat diabaikan jika dibandingkan. Jembatan transparan seperti itu tidak mungkin terjadi karena sikap keras kepala belaka dan pengabaian terhadap basis pengguna.

Don Gateley
sumber
Jembatan yang transparan seperti itu tidak mungkin tercapai. Paket 2to3 dan enam menyediakan banyak bridging, tetapi jauh dari transparan.
Martijn Pieters