[Distutils] PEP 376, Uninstallation and interoperability

Eric V. Smith eric at trueblade.com
Tue Feb 19 15:20:19 CET 2013


On 02/19/2013 05:18 AM, Vinay Sajip wrote:

> I've implemented it now in distlib, and it seems to
> work as far as it goes (no consideration has been given to namespace packages
> yet).

Speaking of namespace packages, 2 points:

1. When deleting, you must either be aware of namespace packages and/or
make sure to not delete source or .py[co] files that you did not
install. One distribution could install foo.bar, and another then
install foo.baz. If you install the first one, you cannot just remove
foo. I hope this is obvious, but I'll say it here because it's a
behavior unique to namespace packages, when it comes to python files (as
opposed to bin, etc. directories).

2. Does the metadata need to contain information about namespace
packages? It's settable in distribute/setuptools' setup.py. I'm not sure
if the need for it has been obviated by PEP 420 or not. And I'm also not
sure if metadata is needed for pre-PEP 420 namespace packages, and if
so, if we want to support them.

> I did that with distlib, but it doesn't go far enough. A shared location (e.g.
> bin) might be created when installing Foo, and added to when Bar is installed;
> whichever of these gets uninstalled first, the behaviour should be the same in
> terms of how to handle a non-empty bin. See below for more detail on what I
> mean when I say "behaviour".

Ah, I didn't read far enough before I wrote #1 above. This is the same
issue with namespace packages.

Eric.



More information about the Distutils-SIG mailing list