[Distutils] namespace_package

Zvezdan Petkovic zvezdanpetkovic at gmail.com
Wed Dec 2 00:17:14 EST 2015

Hi KP,

> On Dec 1, 2015, at 4:17 AM, KP <patter001 at gmail.com> wrote:
> yes, both of those statements are true.
> However, with the namespace_packages = [‘foo'], the lib\site-packages\foo\__init__.py does not get installed (even though it is in the source tree).

This is exactly how it’s supposed to behave for namespace packages.
The *.pth file will take care of providing info about your namespace to the python importer.

> Instead there’s just a dir with "foo/bar/__init__.py" and "foo/blah/__init__.py".

These are regular packages. Hence they preserve their __init__.py.
Hope this helps.



> I will try to look in the "wheel" side of things next I guess. Perhaps pip is doing something since it seems to install even source distributables by first converting to a wheel.
> On Tue, Dec 1, 2015 at 1:38 AM, Marius Gedminas <marius at gedmin.as <mailto:marius at gedmin.as>> wrote:
> On Mon, Nov 30, 2015 at 06:59:31PM -0500, KP wrote:
> > I'm not sure where the issue is, but when I specify a namespace_package in
> > the setup.py file, I can indeed have multiple packages with the same base
> > (foo.bar, foo.blah, etc...). The files all install in to the same
> > directory. It drops  the foo/__init__.py that would be doing the
> > extend_path, and instead adds a ".pth" file that is a bit over my head.
> >
> > The problem is that it does not seem to traverse the entire sys.path to
> > find multiple foo packages.
> Does every foo.x package specify namespace_packages=['foo']?
> Do they all ship an identical foo/__init__.py with
>     import pkg_resources
>     pkg_resources.declare_namespace(__name__)
> ?
> AFAIU you need both things in every package, if you want to use
> namespace packages.
> > If I do not specify namespace_packages and instead just use the
> > pkgutil.extend_path, then this seems to allow the packages to be in
> > multiple places in the sys.path.
> >
> > Is there something additional for the namespace_package that i need to
> > specify in order for all of the sys.path to be checked?
> >
> > I'm using 18.5 setuptools....but I am not sure if this somehow ties in to
> > wheel/pip, since I'm using that for the actual install.
> Marius Gedminas
> --
> Give a man a computer program and you give him a headache, but teach him to
> program computers and you give him the power to create headaches for others for
> the rest of his life...
>         -- R. B. Forest
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG at python.org <mailto:Distutils-SIG at python.org>
> https://mail.python.org/mailman/listinfo/distutils-sig <https://mail.python.org/mailman/listinfo/distutils-sig>
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG at python.org
> https://mail.python.org/mailman/listinfo/distutils-sig

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20151201/fa86341e/attachment.html>

More information about the Distutils-SIG mailing list