[Python-Dev] PEP 376 - Open questions

Paul Moore p.f.moore at gmail.com
Tue Jul 7 11:44:45 CEST 2009


2009/7/7 M.-A. Lemburg <mal at egenix.com>:
> I think you have to differentiate between packages and applications.

Agreed. I believe that only packages should be considered here.
Applications are the focus of tools like py2exe on Windows, and (AIUI)
things like workingenv. These tools should (will) have their own
approaches.

The only cases I know where there is reason for a package to store
paths outside the package directory are:
- executable scripts, which go in sys.prefix/Scripts on Windows, and
??? on Unix/MAC OS
- supporting files (MoinMoin puts its HTML documents etc in
sys.prefix/share on Windows, cx_Oracle puts its documentation in
sys.prefix/cx_Oracle-doc)

Executable files could probably be superseded by using "python -m",
but compatibility and users' preference for having a "real script"
probably means they aren't going away in the near future.

Support files are getting put in the package directory more often
these days, but stuff that needs to be found by non-Python tools is
arguably still better in a more discoverable location.

For Windows, having a few distinguished locations under the
installation root (scripts, share, doc) would probably do. For Unix
and Mac OS, I have no opinion (but I suspect that absolute paths like
/usr/local/bin might be the norm there).

[...]
> Summarizing, I think it's better not to record config files
> and other user-edited files in the RECORD file.

The RECORD file should contain precisely those files that are created
as part of the install. That's ultimately the point of the file (for
ownership queries and uninstallation).

Hmm, on the other hand, if foo.py is in the RECORD file, the
uninstaller should uninstall foo.pyc and foo.pyo as well. And a query
as to whether the distribution owns foo.pyc should return True. How
will this be handled?

Paul.


More information about the Python-Dev mailing list