2010-05-09 6 views
21

Ich pflege ein paar Python-Pakete. Ich habe eine sehr ähnliche setup.py Datei für jeden von ihnen. Wenn Sie jedoch setup.py install tun, wird eines meiner Pakete als Ei installiert, während die anderen als "Ei-Ordner" installiert werden, d. H. Ordner mit der Erweiterung "Ei".Python: Warum werden einige Pakete als Eier und einige als "Ei-Ordner" installiert?

Was ist der Unterschied zwischen ihnen, der dieses unterschiedliche Verhalten verursacht?

+0

(Ich bin auf Windows XP.) –

Antwort

22

:

Wenn zip-safe vorhanden ist, bedeutet dies, dass das Projekt ordnungsgemäß funktionieren wird, wenn sie als .egg zipfile installiert ist, und umgekehrt die Existenz von not-zip-safe bedeutet, dass das Projekt sollte nicht als .egg Datei [dh installiert werden . als .egg Verzeichnis]. Die zip_safe Option zu setuptools setup() bestimmt, welche Datei geschrieben wird. Wenn die Option nicht bereitgestellt wird, versucht setsetools auf der Grundlage der Code- und Inhaltsanalyse selbst zu beurteilen, ob das Paket funktionieren kann.

+7

Was für ein Projekt zip-sicher macht? Warum würdest du das eine oder das andere wählen? (Ich frage, wie jemand ein Projekt Verpackung.) –

+2

Von Setuptool Dokumentation: http://peak.telecommunity.com/DevCenter/setuptools#setting-the-zip-safe-flag – saffsd

4

Eine einzelne Eildatei ist eigentlich ein Zip-Archiv mit einer bestimmten Verzeichnisstruktur. In der Dokumentation zipimport können nur .py, .pyc und .pyo Dateien aus ZIP-Dateien importiert werden. Also, wenn das Paket andere Arten von Modul-Ressourcen importieren muss (wie kompilierter c-Code; .so Dateien, Dateien), wird es nicht als Zip-Datei funktionieren.

Ich weiß nicht, ob dies die nur Grund ist, dass einige Eier nicht als Zip-Archive arbeiten, aber ich denke, es ist der Hauptgrund.

+0

Es ist nicht der Hauptgrund. Es ist nicht einmal ein * richtiger Grund. setuptools fügt spezielle Loader hinzu, damit .so und .pyd Dateien auch mit einem komprimierten Ei funktionieren. Die andere Antwort ist die richtige. –

Verwandte Themen