[Distutils] install location(s)

Andrew Dalke dalke@bioreason.com
Mon, 29 Mar 1999 14:54:17 -0800


Fred Drake said:
>  In general, 100% Python packages should be installed in
> site-packages/, 

Okay, I'll follow that guideline.

>   I presume each of these platform variations would get a different
> $exec_prefix, or the distinction would be hidden at a lower level
> (such as mounting a filesystem at a common point based on binary
> flavor; not hard with NFS).  

Thinking about your comment some more, my question is much less of
an issue than I had thought.

If we (Bioreason) distribute binary libraries and want to be specific
to the given architecture we can install under the existing python
tree, or somewhere else.

If we install under the existing "site-packages" directory, then
the sysadmin has already figured out how to handle the differences
between OSes (eg, by having distinct install or with the NFS mount
trick).  And there's no way we can predict that method.

If we distribute as our own directory tree, then the PYTHONPATH
will already have to be modified, so we can say:

Add "source /blah/bling/blang/blang.csh" to your ".cshrc"

and then define "blang.csh" as something like:

setenv OUR_PACKAGE /blah/bling/blang
set arch=`$OUR_PACKAGE/getarch.sh`
set libdir=$OUR_PACKAGE/lib/$arch

if ${?PYTHONPATH} then
  setenv PYTHONPATH $PYTHONPATH:$OUR_PACKAGE/python:$libdir
else
  setenv PYTHONPATH $OUR_PACKAGE/python:$libdir
endif



The only time this is an issue is if the sysadmin doesn't
already have a mechanism for installing multiple architectures,
and there's no way that can be mandated.  (For example, I
think we'll end up internally choosing libraries by setting
up our own PYTHONPATH as needed for each architecture, and we'll
be able to specify our own criterion to distinguish between then
in ways that the normal Python install *cannot* discern.)

						Andrew
						dalke@bioreason.com