
Jesse Noller wrote:
Of course, doing this begs the question - why have /bin and /lib be top-level directories, instead favoring a layout which looks like:
.local/ python2.6/ bin/ lib/
The data and doc directories which some packages might include should follow the same convention, to avoid conflicts in those directories as well.
As you know, Jesse, there is a precedent for this kind of layout: Python framework installs on Mac OS X. For those not familiar with it, the directory layout is something like this: {/System/Library/ | /Library | ~/Library }/Frameworks/Python.framework/ 2.6/ bin/ include/ lib/ share/ 3.1/ bin/ include/ ... where /System/Library/... contains the Apple-supplied Python(s), /Library/... contains the sysadmin-installed set of Pythons (for example, the default for python.org installers) ~/Library/... contains user-installed Pythons. So, not only do framework installs support multiple versions at the user level, they do so at the system and vendor level as well, and support multiple versions of essentially all Python-installed objects (i.e. shared libraries, executables, scripts, etc). (A side note: with OS X Python frameworks builds, ~/.local really isn't needed since ~/Library/Frameworks/... already provides its functionality and more.) As with any scheme supporting multiple versions, a downside to this is potential user confusion over how to manage access to these multiple versions. For those who don't regularly follow Python on OS X matters, this continues to be the source of some of the most frequent support questions. Those who understand the concept of search $PATH can figure out how to deal with it a lot easier than those who don't. As a convenience, the python.org 2.x and 3.1 installers by default also install versioned symbolic links in /usr/local/bin to the standard python command line objects in their respective framework bin directories., i.e. pythonx.x, pydocx.x, idlex.x. Something similar could be done automatically for distutil-installed scripts, of course. -- Ned Deily, nad@acm.org