Son ilerleme
Mart 2014 : İyi haber! Python 3.4 , Pip ile birlikte gelir. Pip, uzun süredir Python'un fiili standart paket yöneticisi olmuştur. Bunun gibi bir paket kurabilirsiniz :
pip install httpie
Wahey! Bu, herhangi bir Python sürümünün en iyi özelliğidir. Topluluğun kütüphane zenginliğini herkes için erişilebilir kılar. Yeni başlayanlar artık kurulumun engelleyici zorluğu nedeniyle topluluk kitaplıklarını kullanmaktan dışlanmıyor.
Bununla birlikte, Python paketleme deneyimiyle ilgili bir dizi olağanüstü hayal kırıklığı var. Kümülatif olarak, Python'u yeni başlayanlar için çok istenmeyen hale getiriyorlar. Ayrıca, ihmalin uzun geçmişi (yani, Python 2.0'dan Python 3.3'e 14 yıl boyunca bir paket yöneticisi ile gönderilmemesi) topluluğa zarar verdi. Her ikisini de aşağıda tarif ediyorum.
Olağanüstü hayal kırıklıkları
Deneyimli kullanıcılar bu hayal kırıklıklarının üstesinden gelebilse de, bunların Python'a yeni başlayanlar için önemli engeller olduğunu anlamak önemlidir. Aslında, zorluk ve genel kullanıcı dostluğu pek çoğunu caydırabilir.
PyPI web sitesi karşı yardımcıdır
Paket yöneticisi olan her dil, topluluğun paketleri indirip yayınlaması için resmi (veya yarı resmi) bir havuza sahiptir. Python, Python Paket Dizini, PyPI'ye sahiptir. https://pypi.python.org/pypi
Sayfalarını RubyGems ve Npm (Düğüm paketi yöneticisi) ile karşılaştıralım.
- Paket için https://rubygems.org/gems/rails RubyGems sayfası
rails
- Paket için https://www.npmjs.org/package/express Npm sayfası
express
- https://pypi.python.org/pypi/simplejson/ Paket için PyPI sayfası
simplejson
RubyGems ve Npm sayfalarının her ikisinin de paketin tek satırlık bir açıklamasıyla başladığını göreceksiniz, ardından onu nasıl kuracağınıza dair büyük ve kolay talimatlar.
Bu arada, PyPI'ye saf bir şekilde göz atan tüm talihsiz Python kullanıcılarının vay haline. On https://pypi.python.org/pypi/simplejson/ , onlar böyle yararlı talimatları bulacaksınız. Ancak, büyük, yeşil bir 'İndir' bağlantısı vardır. Onu takip etmek mantıksız değil. Aha, tıklıyorlar! Tarayıcıları bir .tar.gz
dosya indirir . Birçok Windows kullanıcısı onu açamaz bile, ancak sebat ederlerse, sonunda onu çıkarabilir, ardından çalıştırabilir setup.py
ve sonunda Google'ın yardımıyla setup.py install
. Bazıları pes edecek ve tekerleği yeniden icat edecek ..
Tabii ki bunların hepsi yanlış. En kolay bir paket yüklemek için yolu Pip komutuyla olduğunu. Ama PyPI, Pip'ten bahsetmedi bile. Bunun yerine, onları arkaik ve sıkıcı bir yola götürdü.
Hata: vcvarsall.bat bulunamıyor
Numpy, Python'un en popüler kütüphanelerinden biridir. Pip ile yüklemeyi deneyin, şu şifreli hata mesajını alırsınız:
Hata: vcvarsall.bat bulunamıyor
Stack Overflow'daki en popüler sorulardan biri olan bu sorunu gidermeye çalışmak: " hata: vcvarsall.bat bulunamadı "
Çok az insan başarılı.
Karşılaştırma için, aynı durumda, Ruby neler olduğunu ve nasıl düzeltileceğini açıklayan bu mesajı yazdırır:
Lütfen derleme araçlarını eklemek veya DevKit'i http://rubyinstaller.org/downloads adresinden indirmek için PATH'nizi güncelleyin ve http://github.com/oneclick/rubyinstaller/wiki/Development-Kit adresindeki talimatları izleyin.
Paketleri yayınlamak zordur
Ruby ve Nodejs, tam özellikli paket yöneticileri Gem (2007'den beri) ve Npm (2011'den beri) ile birlikte gelir ve GitHub merkezli paylaşım topluluklarını beslemiştir. Npm, paket yayınlamayı yüklemek kadar kolay hale getirir , zaten 64k pakete sahiptir . RubyGems 72k paketi listeler . Saygıdeğer Python paket dizini yalnızca 41k'yi listeler .
Tarih
" Piller dahil " mottosu karşısında uçan Python, 2014 yılına kadar paket yöneticisi olmadan sevk edildi.
Pip'e kadar fiili standart bir komuttu easy_install
. Ne yazık ki yetersizdi. Paketleri kaldırma komutu yoktu.
Pip büyük bir gelişmeydi. Ruby's Gem'in çoğu özelliğine sahipti. Ne yazık ki, Pip - yakın zamana kadar - ironik bir şekilde kurulumu zordu. Aslında, sorun Stack Overflow'da en çok sorulan Python sorusu olmaya devam ediyor: " Windows'a pip'i nasıl yüklerim? "