Bu cevabı artık güncellemediğimi unutmayın. Kişisel sitemde http://python-notes.curiousefficiency.org/en/latest/python3/questions_and_answers.html adresinde çok daha uzun süredir Python 3 Soru ve Cevaplarım var
Önceki cevap:
(Durum güncellemesi, Eylül 2012)
Biz (yani Python çekirdek geliştiricileri) Python 3.0'ın piyasaya sürüldüğü zaman, 3.x'in 2.x serisindeki yeni projeler için "varsayılan" tercih haline gelmesinin yaklaşık 5 yıl alacağını öngörmüştük. Bu tahmin, 2.7 sürümü için planlanan bakım süresinin bu kadar uzun olmasının nedenidir.
Orijinal Python 3.0 sürümü aynı zamanda, çoğu IO performansında etkili bir şekilde kullanılamaz kılan, düşük IO performansı ile ilgili bazı kritik sorunların ortaya çıktığı için, bu yüzden, Haziran 2009'un sonlarında Python 3.1'in piyasaya sürülmesinden itibaren zaman çizelgesini başlatmak daha mantıklı geliyor. (Bunlar GÇ performans sorunları, 3.0.z bakım bültenlerinin olmamasının da nedenidir: kimsenin 3.0'a yükseltme yerine 3.0'a bağlı kalmak istemesi için iyi bir sebep yoktur).
Yazma zamanında (Eylül 2012), bu şu anda geçiş sürecine 3 yıldan biraz fazla kaldığımız ve bu tahminin hala devam ettiği görülüyor.
İnsanlar iken yazarak Python 3 kod en düzenli gibi sözdizimsel değişikliklerden ısırılmaktadır print
otomatikleştirilmiş çünkü aslında kütüphane taşınması için bir güçlük olmadığını, bir fonksiyon haline 2to3
dönüştürme aracı oldukça mutlu o işler.
Uygulamadaki en büyük problem aslında anlamsal bir problem: Python 3, Python 2'nin yaptığı gibi metin kodlamaları ile hızlı ve gevşek oynamanıza izin vermiyor. Bu, hem Python 2'ye göre en büyük avantajı, hem de taşıma için en büyük engeldir: bir limanın doğru çalışması için Unicode işleme sorunlarını düzeltmeniz gerekir (2.x'te, bu kodun çoğu sessizce yanlış veri üretti. ASCII olmayan girişler, özellikle ASCII dışı verilerin nadir olduğu ortamlarda çalışma izlenimi verir).
Python 3.0 ve 3.1'deki standart kütüphanelerde bile Unicode kullanım sorunları vardı, bu da birçok kütüphanenin (özellikle web servisleriyle ilgili olanlar) taşınmasını zorlaştırdı.
3.2, Django gibi kütüphaneler ve çerçeveler için daha iyi bir hedef sağlayarak bu sorunların çoğuna değindi. 3.2 ayrıca wsgiref
web ortamında benimsenmesi için gerekli bir önkoşul olan, 3.x için (web sunucuları ve Python ile yazılmış web uygulamaları arasında iletişim için kullanılan ana standart) ilk çalışma versiyonunu da getirdi .
Numpy ve SciPy gibi anahtar bağımlılıkları şimdi de geliştirilmektedir, montaj ve bağımlılık yönetimi araçları gibi zc.buildout
, pip
ve virtualenv
3.x için mevcuttur, Piramit 1.3 sürüm Python 3.2, yaklaşan Django 1.5 sürümünde deneysel Python 3 desteği içerir destekler ve 12.0 serbest bırakma arasında Twisted networking framework, Python 3 uyumlu bir sürüm oluşturmanın yolunu açmak için Python 2.5 desteğini bıraktı.
Python 3 uyumluluk kitaplıkları ve çerçevelerinde ilerlemeye ek olarak, popüler JIT-derlenmiş PyPy tercüman uygulaması aktif olarak Python 3 desteği üzerinde çalışıyor.
Geçiş sürecini yönetmek için araçlar da belirgin bir şekilde iyileşmiştir. 2to3
CPython'un bir parçası olarak sunulan araca ek olarak (şu anda 2.x serisi için desteğini sürdürmesi gerekmeyen uygulamaların tek seferlik dönüşümleri için en uygun olanı olarak kabul edilir), ayrıca python-modernize
, 2to3
hedeflenen alt yapıyı kullanan Python 2 ve Python 3'ün (büyük) ortak alt kümesi. Bu araç, six
uyumluluk kütüphanesinin yardımıyla hem Python 2.6+ hem de Python 3.2+ üzerinde çalışacak tek bir kod tabanı oluşturur . Python 3.3 sürümü ayrıca, mevcut Unicode uyumlu uygulamalara geçiş yaparken "gürültünün" önemli bir nedenini de ortadan kaldırır: Python 3.3, dize değişmezleri için 'u' önekini bir kez daha destekler (aslında yapmaz)Python 3'teki herhangi bir şey - yanlışlıkla Python 2'deki metinlerini ve ikili harfleri ayırt eden kullanıcılar için yanlışlıkla Python 3'e geçişi zorlaştırmamak için geri yüklendi ).
Bu yüzden işlerin nasıl yürüdüğü konusunda gerçekten çok mutluyuz - orijinal zaman dilimine devam etmek için hala yaklaşık 2 yıl var ve değişiklikler tüm Python ekosistemi içinde güzelce yayılıyor.
Bir çok proje Python Paket Endeksi meta verilerini doğru şekilde iyileştirmediğinden ve daha az aktif bakıcıya sahip bazı projelere Python 3 desteği eklemek zorunda kaldıklarından, tamamen otomatik olan PyPI tarayıcıları Python 3 kütüphanesinin durumunun aşırı derecede olumsuz bir görüntüsüne sahip destek.
PyPI'deki Python 3 desteği seviyesi hakkında bilgi edinmek için tercih edilen bir alternatif http://py3ksupport.appspot.com/
Bu liste, yanlış proje meta verilerini, kaynak kontrol araçlarında bulunan ancak henüz resmi bir sürümde bulunmayan Python 3 desteğini ve daha güncel çatalları olan projeleri hesaba katan Brett Cannon (uzun süredir Python çekirdek geliştiricisi) tarafından kişisel olarak küratörlüğünü yaptı. Python 3'ü destekleyen alternatifler veya alternatifler Pek çok durumda, Python 3'te henüz mevcut olmayan kütüphaneler kilit bağımlılıklardan yoksundur ve / veya diğer projelerde Python 3 desteğinin eksikliği kullanıcı talebini azaltır (örneğin, temel Django çerçevesi, Güney ve django-kereviz gibi Python 3, ilgili araçları Python 3 desteği ve her iki Piramit içinde Python 3 desteği kullanılabilirliği eklemek için olasılığı daha yüksektir ve Django Python 3 desteği) gevent gibi diğer araçlarla hayata geçirilecek ihtimalini yapar.
Http://getpython3.com/ adresindeki site, kitaplara ve Python 3 için diğer kaynaklara bazı mükemmel bağlantılar içerir, Python 3'ü destekleyen bazı temel kütüphaneleri ve çerçeveleri tanımlar ve geliştiricilerin PSF, anahtar projeleri Python 3'e taşıyor.
Bir başka iyi kaynak, yeni bir proje için Python sürümünü seçerken göz önünde bulundurulması gereken faktörler hakkındaki topluluk wiki sayfasıdır: http://wiki.python.org/moin/Python2orPython3