Progressi recenti
Marzo 2014 : buone notizie! Python 3.4 viene fornito con Pip. Pip è da tempo il gestore di pacchetti standard di fatto di Python. Puoi installare un pacchetto come questo:
pip install httpie
Wahey! Questa è la migliore caratteristica di qualsiasi versione di Python. Rende la ricchezza delle biblioteche della comunità accessibile a tutti. I principianti non sono più esclusi dall'uso delle librerie della comunità a causa della difficoltà proibitiva dell'installazione.
Tuttavia , rimangono molte frustrazioni eccezionali nell'esperienza di packaging di Python. Cumulativamente, rendono Python molto poco accogliente per i neofiti. Inoltre, la lunga storia di abbandono (vale a dire che non è stato spedito con un gestore di pacchetti per 14 anni da Python 2.0 a Python 3.3) ha danneggiato la comunità. Descrivo entrambi di seguito.
Frustrazione eccezionale
È importante capire che mentre gli utenti esperti sono in grado di aggirare queste frustrazioni, rappresentano barriere significative per le persone che non conoscono Python. In effetti, è probabile che la difficoltà e la scarsa cordialità dell'utente possano scoraggiare molti di loro.
Il sito Web di PyPI è di aiuto
Ogni lingua con un gestore di pacchetti ha un repository ufficiale (o quasi ufficiale) per consentire alla community di scaricare e pubblicare pacchetti. Python ha l'indice del pacchetto Python, PyPI. https://pypi.python.org/pypi
Confrontiamo le sue pagine con quelle di RubyGems e Npm (il gestore pacchetti Node).
- https://rubygems.org/gems/rails Pagina di RubyGems per il pacchetto
rails
- https://www.npmjs.org/package/express Pagina Npm per il pacchetto
express
- https://pypi.python.org/pypi/simplejson/ Pagina PyPI per il pacchetto
simplejson
Vedrai entrambe le pagine RubyGems e Npm iniziare con una descrizione di una riga del pacchetto, quindi istruzioni amichevoli su come installarlo.
Nel frattempo, guai a qualsiasi utente sfortunato di Python che naviga ingenuamente verso PyPI. Su https://pypi.python.org/pypi/simplejson/ , non troveranno istruzioni così utili. Vi è tuttavia un grande link verde "Download". Non è irragionevole seguirlo. Ah, fanno clic! Il loro browser scarica un .tar.gz
file. Molti utenti di Windows non possono nemmeno aprirlo, ma se perseverano potrebbero eventualmente estrarlo, quindi eseguirlo setup.py
ed eventualmente con l'aiuto di Google setup.py install
. Alcuni si arrenderanno e reinventeranno la ruota ..
Certo, tutto ciò è sbagliato. Il modo più semplice per installare un pacchetto è con un comando Pip. Ma PyPI non ha nemmeno menzionato Pip. Invece, li ha condotti lungo un percorso arcaico e noioso.
Errore: impossibile trovare vcvarsall.bat
Numpy è una delle librerie più popolari di Python. Prova a installarlo con Pip, ricevi questo messaggio di errore criptico:
Errore: impossibile trovare vcvarsall.bat
Cercare di risolvere questa è una delle domande più popolari su Stack Overflow: " errore: impossibile trovare vcvarsall.bat "
Poche persone hanno successo.
Per fare un confronto, nella stessa situazione, Ruby stampa questo messaggio, che spiega cosa sta succedendo e come risolverlo:
Aggiorna il tuo PERCORSO per includere strumenti di compilazione o scarica DevKit da http://rubyinstaller.org/downloads e segui le istruzioni su http://github.com/oneclick/rubyinstaller/wiki/Development-Kit
La pubblicazione di pacchetti è difficile
Ruby e Nodejs vengono forniti con gestori di pacchetti completi, Gem (dal 2007) e Npm (dal 2011), e hanno coltivato comunità di condivisione incentrate su GitHub. Npm rende i pacchetti di pubblicazione facili come installarli, ha già 64k pacchetti . RubyGems elenca pacchetti da 72k . Il venerabile indice del pacchetto Python elenca solo 41k .
Storia
Volando di fronte al motto " batterie incluse ", Python è stato spedito senza un gestore di pacchetti fino al 2014.
Fino a Pip, lo standard di fatto era un comando easy_install
. Era dolorosamente inadeguato. Non era necessario il comando per disinstallare i pacchetti.
Pip è stato un enorme miglioramento. Aveva la maggior parte delle caratteristiche della gemma di Ruby. Sfortunatamente, Pip era - fino a poco tempo fa - ironicamente difficile da installare. In effetti, il problema rimane una delle principali domande di Python su Stack Overflow: " Come installo pip su Windows? "