Der Unterschied zwischen verschiedenen Methoden der Python-Paketverwaltung
Ich lerne Python schon seit einiger Zeit und stoße oft auf das Problem, verschiedene Pakete zu installieren, manchmal setup.py, manchmal easy_install und manchmal pip. Es gibt auch einige Konzepte wie Distutils, Setuptools usw. Es ist unklar, wer wer ist und wann ich was verwenden soll. Heute werde ich diese Konzepte klären.
distutils
distutils ist Teil der Python-Standardbibliothek. Ihre ursprüngliche Absicht besteht darin, Entwicklern eine praktische Verpackungsmethode und Benutzern eine praktische Installationsmethode bereitzustellen.
Sie erstellen beispielsweise ein Paket mit dem Namen foo, das eine foo.py-Datei enthält, und möchten es verpacken, damit andere es verwenden können. Zu diesem Zeitpunkt müssen Sie eine setup.py-Datei schreiben:
from distutils.core import setup
setup(name='foo',
version='1.0' ,
py_modules=['foo'],
)
Dann führen Sie den Befehl
$python setup.py sdist
aus Dann finden Sie im aktuellen Verzeichnis einen Ordner namens dist, der ein foo-1.0.tar.gz-Paket enthält. Dieses Paket enthält drei Dateien: foo.py, setup.py, PKG-INFO. Die ersten beiden Dateien sind mit den beiden zuvor erwähnten Dateien identisch. PKG-INFO sind einige Informationen über das Paket. Dann können Sie foo-1.0.tar.gz für andere installieren.
Wenn der Installer dieses Paket verwenden möchte, muss er nur die Datei foo-1.0.tar.gz dekomprimieren und dann den Befehl
$python setup install
Das Paket wird automatisch an der entsprechenden Stelle auf dem System installiert. setuptoolssetuptools ist eine Erweiterung zu Distutils, insbesondere die Einführung der Paketabhängigkeitsverwaltung. setuptools können Egg-Dateien für Python-Pakete erstellen. Die Beziehung zwischen Python- und Egg-Dateien entspricht der Beziehung zwischen Java- und JAR-Paketen. Das von setuptools bereitgestellte easy_install-Skript kann zum Installieren von Egg-Paketen verwendet werden. Darüber hinaus kann easy_install automatisch relevante Pakete von PyPI herunterladen und die Installation und Aktualisierung abschließen. easy_install bietet eine Vielzahl von Möglichkeiten zum Installieren und Aktualisieren von Python-Paketen, wie zum Beispiel: easy_install SQLObjecteasy_install -f http://pythonpaste.org/package_index.html SQLObject easy_install http://example.com/path/to/MyPackage-1.2.3.tgzeasy_install /my_downloads/OtherPackage-3.2.1-py2.3.eggeasy_install --upgrade PyProtocolsSpätere Entwickler waren der Meinung, dass die Entwicklung von setuptools zu langsam war und gaben das Distribute-Projekt auf. Im August 2013 wurde Distribute dann wieder in setuptools 0.7 integriert. pippip ist ein Tool zum Installieren und Verwalten von Python-Paketen. Es handelt sich um eine Erweiterung zu easy_install. Sie können Pakete auch automatisch von PyPI herunterladen und installieren. In pip Alle erforderlichen Pakete müssen vor der Installation heruntergeladen werden, sodass keine Situation auftritt, in der ein Teil installiert ist und der andere Teil nicht.Alle installiert Pakete werden nachverfolgt, sodass Sie wissen, warum sie installiert wurden und deinstalliert werden können. Keine Notwendigkeit, eine Eierfeile zu verwenden. Einfach zu verwenden: pip install pkg_namepip uninstall pkg_name