Namespace packages: pkg_resources vs. pkgutil

Hallo, ich habe mir kürzlich zope.interface angesehen. Dabei ist mir aufgefallen, dass hier namespace packages verwendet werden (sinnvoll). Gleichzeit gibt es dort aber einen except-Handler für den Fall, dass setuptools nicht installiert ist: | # this is a namespace package | try: | import pkg_resources | pkg_resources.declare_namespace(__name__) | except ImportError: | import pkgutil | __path__ = pkgutil.extend_path(__path__, __name__) Meine Frage ist, ob pkgutil tatsächlich namespace packages emulieren kann, so wie ich das aus dem obigen Code entnehme. Welche Gründe gäbe es aber dann, nicht immer nur pkgutil zu verwenden? Vielen Dank fs

On Saturday 05 April 2008 22:14:05 Felix Schwarz wrote:
Also so wie ich das sehe ist der Unterschied der, das ersteres mit eggs funktioniert, und diese laut [1] auch teil mehrerer namespaces sein koennen. Es ist also flexibler, und ein bisschen polierter. MfG Diez [1]: http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages

Felix Schwarz schrieb:
Was hast du damit gewonnen? Beide Module sind nicht in der Standardbibliothek, bedeuten also also die gleichen Hürden für die Installation. Ich würde sogar sagen, dass die setuptools mittlerweile fast überall wo Python installiert ist, vorhanden sind. Wenn du allerdings sowieso schon die Zope Infrastruktur nutzt, dann macht es evtl. Sinn. Chris

Hallo Christopher, Christopher Arndt schrieb:
Das sehe ich anders: http://www.python.org/doc/2.3.5/lib/module-pkgutil.html
Im konkreten Fall geht es um das python-zope-interface Paket in Fedora Linux. Hier ging es mir darum, möglichst wenig unnötige Abhängigkeiten in das RPM zu kodieren, da diese erzwungen werden und ich somit X (X groß) Benutzern setuptools aufnötigen würde, selbst wenn diese das gar nicht benötigen. fs

On Saturday 05 April 2008 22:14:05 Felix Schwarz wrote:
Also so wie ich das sehe ist der Unterschied der, das ersteres mit eggs funktioniert, und diese laut [1] auch teil mehrerer namespaces sein koennen. Es ist also flexibler, und ein bisschen polierter. MfG Diez [1]: http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages

Felix Schwarz schrieb:
Was hast du damit gewonnen? Beide Module sind nicht in der Standardbibliothek, bedeuten also also die gleichen Hürden für die Installation. Ich würde sogar sagen, dass die setuptools mittlerweile fast überall wo Python installiert ist, vorhanden sind. Wenn du allerdings sowieso schon die Zope Infrastruktur nutzt, dann macht es evtl. Sinn. Chris

Hallo Christopher, Christopher Arndt schrieb:
Das sehe ich anders: http://www.python.org/doc/2.3.5/lib/module-pkgutil.html
Im konkreten Fall geht es um das python-zope-interface Paket in Fedora Linux. Hier ging es mir darum, möglichst wenig unnötige Abhängigkeiten in das RPM zu kodieren, da diese erzwungen werden und ich somit X (X groß) Benutzern setuptools aufnötigen würde, selbst wenn diese das gar nicht benötigen. fs
participants (3)
-
Christopher Arndt
-
Diez B. Roggisch
-
Felix Schwarz