Just to recap: 1. if you don't put namespace_packages in the setup.py, then it will uninstall the shared __init__.py when you uninstall any of the packages 2. If you put namespace_packages, then there is a pth file created for the shared directory (site-packages/foo) and no foo/__init__.py is created (even if it is in your package) #2 - breaks things like : doing a source checkout that participates in this namespace_package...If you do this then only the lib/site-packages/foo/<modules> are importable
Solution appears to be: On Tue, Dec 1, 2015 at 7:17 AM, KP <patter...@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). Instead there's just a dir with "foo/bar/__init__.py" > and "foo/blah/__init__.py". 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 <mar...@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@python.org >> https://mail.python.org/mailman/listinfo/distutils-sig >> >> >
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig