[Python-Dev] PEP 376 - Open questions

Tarek Ziadé ziade.tarek at gmail.com
Tue Jul 7 23:21:25 CEST 2009


2009/7/7 Nick Coghlan <ncoghlan at gmail.com>:
> For *nix, the obvious use case is installing scripts somewhere like
> /usr/bin or /usr/local/bin.

Using distutils' scripts option, they will end up in  : sys.exec_path/bin

Another use case I've found in a distro I've installed this afternoon :

setup(..., data_files=[('/usr/share/man/man1/', ['SOMEFILE'])], ...)

That's not the most elegant way to add a man page, but for someone
who doesn't bather with APT or whatever, it works to build a binary
distribution.

>
> One option is to punt on this whole issue and say if people want to
> install stuff outside the Python module heirarchy they should create
> their own OS-specific package to manage it (i.e. leave the non-relative
> paths to be managed by APT or a Windows installer or whatever).

If so, what do we do with the "data_files" option in distutils ?

If it's used with absolute paths, files can be installed anywhere on
the system, and we want to track them.
Even if we don't uninstall them automatically, they should be tracked
so a third-party
uninstaller can deal with them properly.

Or do we change this distutils feature and state that the directories
used in "data_files"
will always be relative to sys.prefix ?

That would bring us back to three cases in the RECORD:

- files located under sys.prefix, but not located under site-packages
- files located under sys.exec_prefix, but not located under site-packages
- files located under site-packages

Where "site-packages" is the directory that contains .egg-info
directory of the distribution

(that's basically the current PEP state, beside the absolute paths
case we would need to remove)


More information about the Python-Dev mailing list