[Python-Dev] PEP 382: Namespace Packages
P.J. Eby
pje at telecommunity.com
Thu Apr 2 19:14:42 CEST 2009
At 10:32 AM 4/2/2009 -0500, Martin v. Löwis wrote:
>I propose the following PEP for inclusion to Python 3.1.
>Please comment.
An excellent idea. One thing I am not 100% clear on, is how to get
additions to sys.path to work correctly with this. Currently, when
pkg_resources adds a new egg to sys.path, it uses its existing
registry of namespace packages in order to locate which packages need
__path__ fixups. It seems under this proposal that it would have to
scan sys.modules for objects with __path__ attributes that are lists
that begin with a '*', instead... which is a bit troubling because
sys.modules doesn't always only contain module objects. Many major
frameworks place lazy module objects, and module proxies or wrappers
of various sorts in there, so scanning through it arbitrarily is not
really a good idea.
Perhaps we could add something like a sys.namespace_packages that
would be updated by this mechanism? Then, pkg_resources could check
both that and its internal registry to be both backward and forward compatible.
Apart from that, this mechanism sounds great! I only wish there was
a way to backport it all the way to 2.3 so I could drop the messy
bits from setuptools.
More information about the Python-Dev
mailing list