Heim > Artikel > Backend-Entwicklung > So installieren Sie Python Egg
Studenten, die häufig mit Python in Berührung kommen, bemerken möglicherweise, dass bei der Installation eines Python-Pakets eines Drittanbieters möglicherweise der Befehl easy_install verwendet wird. easy_install ist ein Befehl, der im von PEAK (Python Enterprise Application Kit) entwickelten Setuptools-Paket enthalten ist. Er wird zur Installation des Egg-Pakets verwendet. Das Egg-Paket ist derzeit die beliebteste Methode zum Verpacken und Bereitstellen von Python-Anwendungen.
Wie erstelle und installiere ich ein Eierpaket? Ich werde es im Folgenden kurz analysieren.
1.1 Setuptools installieren
Installieren Sie zunächst das Setuptools-Tool. Sie können die apt-Installation direkt unter Debian/Ubuntu verwenden: :
$ sudo apt-get install python-setuptools
Wenn Sie es manuell installieren, gibt es zwei Möglichkeiten:
Installation über das Bootprogramm ez_setup.py. Dieses Boot-Programm lädt die neueste Version der Setuptools zur Installation aus dem Internet herunter und kann auch die lokalen Setuptools aktualisieren.
$ wget http://peak.telecommunity.com/dist/ez_setup.py $ sudo python ez_setup.py
Setuptools aktualisieren: :
$ sudo python ez_setup.py -U setuptools
oder laden Sie das Ei-Paket der Setuptools herunter, um es zu installieren. Der Download der neuesten Version kann hier angesehen werden. Installieren Sie es nach dem Herunterladen über sh.
$ wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg $ sudo sh setuptools-0.6c11-py2.6.egg
Sie können jetzt den Befehl easy_install verwenden, um andere Eierpakete zu installieren.
1.2 Erstellen Sie Ihr eigenes Eierpaket
Ich installiere immer die Eierpakete anderer Leute. Möchten Sie auch Ihr eigenes Eierpaket erstellen? Okay, als nächstes machen wir selbst eine einfache Eiertüte. Erstellen Sie zunächst das Projektverzeichnis egg-demo und initialisieren Sie eine setup.py-Datei:
$ mkdir egg-demo $ cd egg-demo $ touch setup.py $ ls setup.py
Das Folgende dient hauptsächlich dem Ausfüllen von setup.py. setup.py ist eigentlich die Konfigurationsdatei des Python-Toolpakets distutils, und setuptools basiert auf distutils. Konfigurieren Sie Verpackungsinformationen über die Setup-Funktion in setup.py. Zuerst müssen wir das Funktionssetup von setuptools vorstellen. Das Setup von setuptools ist eigentlich die Setup-Funktion von distutils. Füllen Sie setup.py mit dem folgenden Inhalt aus:
$ cat setup.py #!/usr/bin/env python #-*- coding:utf-8 -*- from setuptools import setup setup()
An diesem Punkt wird eine leere Ei-Konfigurationsdatei geschrieben. Wir können den folgenden Befehl verwenden, um das Eierpaket zu generieren:
$ python setup.py bdist_egg
Schauen wir uns an, was generiert wird:
$ ls -F build/ dist/ setup.py UNKNOWN.egg-info/
Sie können drei weitere Ordner sehen. Unter dem dist-Ordner befindet sich eine Egg-Datei: UNKNOWN-0.0.0-py2.6.egg. Eiablage erfolgreich! Werfen wir zunächst einen Blick auf das Format dieser Ei-Datei:
$ file dist/UNKNOWN-0.0.0-py2.6.egg dist/UNKNOWN-0.0.0-py2.6.egg: Zip archive data, at least v2.0 to extract
Oh, es stellt sich heraus, dass es sich um ein Zip-Archiv handelt! Okay, werfen wir einen Blick auf die interne Struktur:
$ unzip -l dist/UNKNOWN-0.0.0-py2.6.egg Archive: dist/KNOWN-0.0.0-py2.6.egg Length Date Time Name --------- ---------- ----- ---- 120 2010-12-06 17:04 EGG-INFO/SOURCES.txt 1 2010-12-06 17:04 EGG-INFO/top_level.txt 1 2010-12-06 17:04 EGG-INFO/zip-safe 1 2010-12-06 17:04 EGG-INFO/dependency_links.txt 227 2010-12-06 17:04 EGG-INFO/PKG-INFO --------- ------- 350 5 files
Es gibt nur einen EGG-INFO-Ordner mit fünf Ei-Informationsdateien, der weg ist. Der Name dieses Eies ist unbekannt, Version 0.0.0. Das liegt daran, dass wir im Setup nichts eingestellt haben. Offensichtlich kann dieses Ei nichts bewirken. Fügen Sie nun einige Zutaten hinzu. In setup.py erhält die Setup-Funktion eine Reihe von Eigenschaften als Konfigurationsparameter.
name name ist der Name des Eierpakets und der Name des zu verpackenden Ordners. Der Standardwert ist UNBEKANNT.
Versionsnummer, Standard 0.0.0
packages Eine weitere Funktion von setuptools, find_packages, wird hier verwendet. Wie der Name schon sagt, wird find_packages zum Packen von Dateien im angegebenen Verzeichnis verwendet.
zip_safe ist standardmäßig auf False eingestellt, sodass der Inhalt der Projektdatei jedes Mal überprüft wird, wenn das Ei-Paket generiert wird, um sicherzustellen, dass er korrekt ist.
Es gibt auch einige beschreibende Attribute, wie Beschreibung, lange_Beschreibung, Autor, Autor_E-Mail, Lizenz, Schlüsselwörter, Plattform, URL usw. Füllen Sie die Datei setup.py wie folgt aus: :
$ cat setup.py #!/usr/bin/env python #-*- coding:utf-8 -*- from setuptools import setup, find_packages setup( name = "demo", version="0.1.0", packages = find_packages(), zip_safe = False, description = "egg test demo.", long_description = "egg test demo, haha.", author = "amoblin", author_email = "amoblin@ossxp.com", license = "GPL", keywords = ("test", "egg"), platforms = "Independant", url = "", )
Erstellen Sie ein Verzeichnis demo mit demselben Namen wie oben im Verzeichnis egg-demo. Schreiben Sie die Datei __init__.py in das Demo-Verzeichnis:
$ mkdir demo $ cat demo/__init__.py #!/usr/bin/env python #-*- coding:utf-8 -*- def test(): print "Hello, I'm amoblin." if __name__ == '__main__': test()
Erneut generieren Überprüfen Sie nach dem Eierpaket die Eierpaketinformationen:
$ python setup.py bdist_egg $ unzip -l dist/demo-0.1.0-py2.6.egg Archive: dist/demo-0.1.0-py2.6.egg Length Date Time Name --------- ---------- ----- ---- 121 2010-12-06 17:30 demo/__init__.py 344 2010-12-06 17:46 demo/__init__.pyc 137 2010-12-06 17:46 EGG-INFO/SOURCES.txt 5 2010-12-06 17:46 EGG-INFO/top_level.txt 1 2010-12-06 17:46 EGG-INFO/zip-safe 1 2010-12-06 17:46 EGG-INFO/dependency_links.txt 227 2010-12-06 17:46 EGG-INFO/PKG-INFO --------- ------- 836 7 files
Sie können sehen, dass es einen zusätzlichen Ordner demo gibt, der die von uns geschriebene __init__.py enthält. Nach dem agilen Prinzip installieren Sie es zuerst und erleben Sie es, bevor Sie sprechen:
$ sudo python setup.py install running install install_dir /usr/local/lib/python2.6/dist-packages/ ... creating /usr/local/lib/python2.6/dist-packages/demo-0.1.0-py2.6.egg Extracting demo-0.1.0-py2.6.egg to /usr/local/lib/python2.6/dist-packages demo 0.1.0 is already the active version in easy-install.pth Installed /usr/local/lib/python2.6/dist-packages/demo-0.1.0-py2.6.egg Processing dependencies for demo==0.1.0 Finished processing dependencies for demo==0.1.0
OK! Als nächstes können wir es direkt durch Import verwenden!
$ python -c "from demo import test;test()" Hello, I'm amoblin.
Erfolgreich exportiert! Dies bedeutet, dass die Installation korrekt ist. Einer unserer Eierbeutel war geboren. Im Allgemeinen werden unsere Quellprogramme im src-Verzeichnis abgelegt, daher verschieben wir als nächstes den Demo-Ordner nach src. Dies erfordert jedoch auch die Änderung der Datei setup.py, die Änderung des Parameters in der Funktion „find_packages“ in „src“ und das Hinzufügen des Parameters „package_dir“:
packages=find_packages('src'), package_dir = {'':'src'}
Dadurch wird den Setuptools mitgeteilt, im Verzeichnis „src“ nach Paketen statt im zu suchen ursprüngliches Standard-Projektstammverzeichnis.
1.3 Egg-Datei-Deinstallation
Am Beispiel der Python2.6-Version wird die Egg-Datei im Allgemeinen im Verzeichnis /usr/local/lib/python2.6/dist-packages/ installiert . Es gibt auch eine Datei „easy-install.pth“, in der die Informationen zum installierten Ei gespeichert werden. :
$ cd /usr/local/lib/python2.6/dist-packages $ cat easy-install.pth|grep demo ./demo-0.1.0-py2.6.egg $ ls -F|grep demo demo-0.1.0-py2.6.egg/
Das Deinstallieren der Egg-Datei ist sehr einfach. Löschen Sie zuerst die Zeile, die dieses Egg enthält, aus easy-install.pth und löschen Sie dann den Egg-Ordner.
Verwandte Empfehlungen: „Python-Tutorial“
Das obige ist der detaillierte Inhalt vonSo installieren Sie Python Egg. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!