Jüngste Fortschritte
März 2014 : Gute Nachrichten! Python 3.4 wird mit Pip ausgeliefert. Pip ist seit langem Pythons De-facto-Standard-Paketmanager. Sie können ein Paket wie folgt installieren :
pip install httpie
Wahey! Dies ist die beste Funktion aller Python-Versionen. Es macht den Bibliotheksreichtum der Community für alle zugänglich. Neulinge sind aufgrund der unerschwinglichen Schwierigkeit der Einrichtung nicht länger von der Verwendung von Community-Bibliotheken ausgeschlossen.
Es gibt jedoch noch eine Reihe herausragender Frustrationen bei der Python-Verpackungserfahrung. Kumuliert machen sie Python für Neulinge sehr unwillkommen. Auch die lange Geschichte der Vernachlässigung (dh 14 Jahre lang kein Versand mit einem Paketmanager von Python 2.0 auf Python 3.3) hat der Community Schaden zugefügt. Ich beschreibe beide unten.
Hervorragende Frustrationen
Es ist wichtig zu verstehen, dass erfahrene Benutzer zwar in der Lage sind, diese Frustrationen zu umgehen, sie jedoch erhebliche Hindernisse für Python-Neulinge darstellen. Tatsächlich werden die Schwierigkeit und die allgemeine Unfreundlichkeit der Benutzer wahrscheinlich viele von ihnen abschrecken.
Die PyPI-Website ist nicht hilfreich
Jede Sprache mit einem Paketmanager verfügt über ein offizielles (oder quasi offizielles) Repository, über das die Community Pakete herunterladen und veröffentlichen kann. Python hat den Python Package Index PyPI. https://pypi.python.org/pypi
Vergleichen wir die Seiten mit denen von RubyGems und Npm (dem Node-Paketmanager).
- https://rubygems.org/gems/rails RubyGems-Seite für das Paket
rails
- https://www.npmjs.org/package/express Npm-Seite für das Paket
express
- https://pypi.python.org/pypi/simplejson/ PyPI-Seite für das Paket
simplejson
Sie sehen, dass die Seiten RubyGems und Npm mit einer einzeiligen Beschreibung des Pakets beginnen und anschließend ausführliche Anweisungen zur Installation des Pakets erhalten.
In der Zwischenzeit wehe jedem unglücklichen Python-Benutzer, der naiv zu PyPI navigiert. Unter https://pypi.python.org/pypi/simplejson/ finden sie keine solchen hilfreichen Anweisungen. Es gibt jedoch einen großen grünen "Download" -Link. Es ist nicht unvernünftig, ihm zu folgen. Aha, sie klicken! Ihr Browser lädt eine .tar.gz
Datei herunter . Viele Windows-Benutzer können es nicht einmal öffnen, aber wenn sie durchhalten, können sie es schließlich extrahieren, dann ausführen setup.py
und schließlich mithilfe von Google setup.py install
. Einige werden aufgeben und das Rad neu erfinden.
Das alles ist natürlich falsch. Der einfachste Weg, ein Paket zu installieren, ist ein Pip-Befehl. Aber PyPI erwähnte Pip nicht einmal. Stattdessen führte es sie auf einen archaischen und mühsamen Weg.
Fehler: vcvarsall.bat konnte nicht gefunden werden
Numpy ist eine der beliebtesten Bibliotheken von Python. Versuchen Sie es mit Pip zu installieren, Sie erhalten diese kryptische Fehlermeldung:
Fehler: vcvarsall.bat konnte nicht gefunden werden
Der Versuch, dies zu beheben, ist eine der häufigsten Fragen zum Stapelüberlauf : " Fehler: vcvarsall.bat konnte nicht gefunden werden "
Nur wenige Menschen haben Erfolg.
Zum Vergleich druckt Ruby in derselben Situation diese Nachricht, in der erklärt wird, was los ist und wie es behoben werden kann:
Bitte aktualisieren Sie Ihren PATH, um Build-Tools einzuschließen, oder laden Sie das DevKit von http://rubyinstaller.org/downloads herunter und folgen Sie den Anweisungen unter http://github.com/oneclick/rubyinstaller/wiki/Development-Kit
Das Veröffentlichen von Paketen ist schwierig
Ruby und Nodejs werden mit den Paketmanagern Gem (seit 2007) und Npm (seit 2011) ausgeliefert und haben die gemeinsame Nutzung von Communitys rund um GitHub gefördert. Npm macht das Veröffentlichen von Paketen so einfach wie das Installieren. Es verfügt bereits über 64.000 Pakete . RubyGems listet 72.000 Pakete auf . Der ehrwürdige Python- Paketindex listet nur 41 KB auf .
Geschichte
Python flog unter dem Motto " Batterien inklusive " und wurde bis 2014 ohne Paketmanager ausgeliefert.
Bis Pip war der De-facto-Standard ein Befehl easy_install
. Es war absolut unzureichend. Das war kein Befehl zum Deinstallieren von Paketen.
Pip war eine massive Verbesserung. Es hatte die meisten Eigenschaften von Ruby's Gem. Leider war Pip - bis vor kurzem - ironischerweise schwer zu installieren. Tatsächlich bleibt das Problem eine der wichtigsten Python-Fragen zum Stapelüberlauf: " Wie installiere ich pip unter Windows? "