[SciPy-dev] issues with installing Numeric in a user directory
eric jones
eric at enthought.com
Thu Dec 19 23:01:22 EST 2002
> Eric Jones writes:
> > (2) .pth files
> > Numeric is a "package" that doesn't really behave as a package. It
> > dumps all of its files in site-packages/Numeric, but it doesn't
define a
> > __init__.py file. Instead, it also puts a Numeric.pth file in
> > site-packages that tells python to also search site-packages/Numeric
for
> > modules. This works fine when Numeric is installed as root, but it
> > doesn't work when it is installed in non-standard places. This is
> > because .pth files are only expaneded when they exist in the
"system"
> > locations. They are ignored anywhere else in the search path. As a
> > result, after installing Numeric with "python setup.py install
> > --prefix=$OSDIR", importing Numeric fails even if
> >
> > PYTHONPATH=$OSDIR/lib/python2.2/site-packages
> >
> > The fix is easy for someone who understands what is going on -- add
> > $OSDIR/lib/python2.2/site-packages/Numeric to the PYTHONPATH.
However,
> > the uninitiated may flail around a long time trying to figure out
why
> > installing a package to there standard location doesn't work --
> > especially if it has worked for every other package they have
installed.
> >
> Something we have done locally at STScI is to hack a sitecustomize.py
> file to do what someone else suggested, i.e., to look at all
directories
> in the pythonpath for .pth files. Our version of this file then looks
> to see if it has masked any other sitecustomize.py files in the path
> and executes the next one (so as not to screw up existing
sitecustomize.py
> files). Is this a possible solution?
Yes. It is a hack IMHO also. It trades environment variable changes to
site.py changes -- I'd rather require neither. Still, I'd like to see
what you've done. Can you send me that file?
>
> > I haven't figured out a nice work around here, other than actually
> > making Numeric a real package which I doubt is even close to an
option.
> > Does anyone else have a better solution?
> >
> Well, we were going to ask about that eventually (for numarray).
> This spurred me to raise it now. Should numarray use the package
> mechanism? This would mean that one would do things like
>
> from numarray.FFT import *
>
> or
>
> from numarray import FFT
>
> The advantages are that numarray 3rd party modules or add-ons are
> more cleanly segregated from the numarray files, and it eliminates
> the possiblity of name collisions with other modules not related
> to numarray. Currently we have a problem with the 3rd party modules
> in that we have to give them a different name than the equivalent
> versions for Numeric (because of name collisions). Thus FFT becomes
> FFT2 which is not a very good solution.
>
> Of course this change impacts current code since the imports would
> have to be changed (generally not a hard code change, but a annoyance
> nonetheless). Adding the subdirectories to the path would make it
> work for old code (wouldn't it?). If we are going to change it,
> now's the time to consider it.
I think now is the time to change it.
eric
More information about the SciPy-Dev
mailing list