Python 2.6 veya 2.7 veya 3.x kullanmalı mıyız? [kapalı]


25

Kullandığım python sürümü 2.6 ve 2.7 ve 3.x var. Genellikle bazı önemsiz programlar / snippet'ler için python kullanıyorum. 2.x ve 3.x arasında bazı büyük farklar olduğunu fark ettim. Gerçekten bilmek istiyorum, eğer python ile daha büyük bir proje yapacaksam hangi python sürümünü kullanmalıyım?

2.7'ye yükseltmeli miyim, yoksa 3.x'e mi gitmeli yoksa 2.6'da mı kalmalıyım?

Karar bu şartlara dayanmalıdır:

  1. Bir topluluk olarak internetteki kullanıcı sayısı. Daha fazla kullanıcı daha fazla açık kaynaklı paket anlamına gelir ve onlardan yardım alır.

  2. İşlevsellik.

  3. Resmi gelişim ekibinden destek.

  4. Mevcut modül / paket için uyumluluk.

Teşekkürler!


5
Birisi python 3.x tarafından yapılan herhangi bir faydalı değişikliği gösterebilir mi?
lamwaiman1988

1
Mevcut modüller ile uyumluluğun bir sorun olduğunu bildiğinizden bahsediyorsunuz, ancak bize kodunuzun hangi modülleri kullandığını söylemiyorsunuz. Bu soru hemen hemen cevapsız.
Wooble

2
konu dışı; bir soru vay önerileri VE goril vs köpekbalığı vay!

3
Bu soru ve cevapları sadece küçük bir zaman dilimi için faydalı olacaktır. Şimdi mantıklı olan, 3.x daha olgunlaştıkça, bir yıl sonra pek mantıklı gelmeyebilir.
Bryan Oakley

(A) sorunun 2014'te hala geçerli olduğuna dikkat çekerek (örneğin RobotFramework Python 3 ile çalışmaz) ve (b) bu ​​soruyu sonlandırmak bu sayfayı perişan tutar çünkü - google arama sonuçlarında yüksek çıksa da - yeni cevaplar gönderilemez.
Bob Stein,

Yanıtlar:


27

Python 2.7'yi kendim öneririm. Python 2.x serisindeki son sürüm. Python modüllerinin çoğu Python 2.x ile çalışacak şekilde üretilmiştir. Orada Python 3'e bir denemek için hareket ve hareket olduğunu, ancak Python 3 modülden herhangi unutmayın 2 ve 3 her ikisi için yazılır değil bu yüzden, Python 3 bulunmayan eski özelliklerini kullanmak sadece sizin kod 2to3 can olduğunu Python 3'te çalışmasını sağlayın.

Python 3 ile gidecekseniz, ilk evlat edinenlerden birisiniz ve muhtemelen Python 3'ü indirmelerini istemeniz gerekir (birçok bilgisayarda sadece Python 2 olacaktır). Öte yandan, yeni özellikler sadece Python 3'e gelecek. Python 2 sürekli bakımda. Bu yüzden hala 10 yıl içinde Python 2'yi kullanmanızı önermem.

Python paketlerine ve bunların Python 3 ile uyumluluğuna bir göz atmak istiyorsanız, bu siteye göz kulak olabilirsiniz: http://python3wos.appspot.com/


django 3.x'i desteklemiyor mu? Yani django ile tanıdık kullanıcı sadece 3.x kullanamazsınız?
lamwaiman1988

Hey normalde yeni bir sürüm yayınlandığında, önceki sürümden daha iyi olduğu anlamına gelir. Ve neden python 2.x serisinde, diğeri ise 3.x serisinde serbest kalıyor? Onlarda gerçek fark nedir.
SICAK

4
Python 3, faydalı olan dilde bazı değişiklikler yaptı, ancak Python 2'deki bazı özelliklerle geriye dönük olarak uyumlu değil. Böylece, bazı şeyler kaldırıldı ve bazıları eklendi (ve kaldırılanlar onları uyumlu hale getirmedi).
jsternberg

2.7 için +1, en iyi uyumluluk oranı (en azından kullandığım kütüphaneler için) 3 olana kadar en yaygın
olanı

@Ashinkn Değişiklikler burada bulunabilir docs.python.org/3.0/whatsnew/3.0.html . En önemli uyumluluk değişikliği, varsayılan dize türü olarak Unicode (ASCII'nin aksine) kullanılmasından kaynaklanmaktadır. İnsanların dizeleri bayt [] kullandıkları yerde, bunun yerine kullanılan yeni bir bytearray tipi vardır. Ayrıca, açıkça unicode olarak tanımlanan tüm 2x dizelerinin normal dizelere değiştirilmeleri gerekir.
Evan Plaice,

19

Bence insanları Python 3'e devretmeye başlamalıyız ve Python 3 ile uyumlu olmayan kütüphaneler varsa, durumu böyle yapmaya başlamalıyız.

Python 3, dilin geleceğidir ve onu kullanarak ne kadar çok kod yazarsak o kadar iyidir.


Ne gerek piton her iki sürümü ile uyumludur ve bunların adları ayrıştırmak tek bir tercüman olduğunu. Yani, bahsedilen yorumlayıcı hem python2'yi hem de python3'ü aynı byte kodunda derler, böylece uyumlu olurlar, python3'ün bir python2 kütüphanesi ile kullanılmasını mümkün kılarlar. C, C ++ ve Java yapabiliyorsa, Python da yapabilir.
Braden Best

4

Django şimdi "deneysel olarak" burada yayınlarından görebileceğiniz gibi Python 3.2+ yazılımını destekliyor .

Bu ve Python 3.x'in dilin geleceği olduğu göz önüne alındığında, Python 3'ün şimdi en iyisi olduğunu söyleyebilirim.


2

Her proje için, bir proje için gerekli tüm kütüphanelerin zaten 3.x python desteği alıp almadığını kontrol edin, o zaman python 3.x kullanın, çünkü bu gelecek ve bu son resmi kararlı sürüm.

Başka kütüphane uyumluluğu için kullanmanız gerekenleri kullanın.


2

Python 2.7 veya Python 3 kullanmanız gerçekten önemli değil. Python 2.7'deki eski özellikleri kullanmıyorsanız, Python 3'te çalışmasını sağlamak için kodunuzu sadece 2 ila 3 yapabilirsiniz.


0

Daha önce aynı teknedeydim ve bulduğum şey buydu. Python 2.6, 2.7 ve 3.2 MacPorts kullanılarak yan yana takılabilir ve kolayca değiştirilebilir. (Ben bir Mac kullanıcısıyım). Platformunuz için Macports alternatiflerini arayın.


0

2.7 paketin şeffaf kullanımına izin vermek için bir köprü 3.x içinde kendiliğinden geliştirilinceye kadar bir hareket tehlikeyle doludur, çünkü dil gerçekten ona neyin katkıda bulunduğuyla ilgilidir. Biçimsel düşünceler ve saflık kıyaslandığında önemsizdir. Böyle şeffaf bir köprünün, bilgiç inatçılığın inatçılığından ve kullanıcı tabanına aldırış etmemesi muhtemel değildir.


Böyle şeffaf bir köprü elde edilemez. 2 ila 3 ve altı paketleri yeterli köprüleme sağlar, ancak saydam olmaktan uzaktır.
Martijn Pieters
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.