|
From: Russell E. O. <ro...@uw...> - 2013-11-22 22:01:12
|
In article <528...@st...>, Michael Droettboom <md...@st...> wrote: > When you use |--home|, distutils assumes you are referring to a home > directory in which you have a tree of libraries in |lib|lib64| living > there, so it appends |lib64/python| to the given path: > > |> python setup.py install --home=/foo > running install > Checking .pth file supportin /foo/lib64/python/ > error: can't create or remove files in install directory| > > So the issue is not that your PYTHONPATH doesn't contain > |/lsst/home/rowen/code/sandbox/Linux64/external/matplotlib/1.3.1+1| > (which it does) but that it doesn't contain > |/lsst/home/rowen/code/sandbox/Linux64/external/matplotlib/1.3.1+1/lib/python| > |. > > With matplotlib 1.2.1, we used raw distutils and not setuptools, which > does the same thing without the strict check. And that does allow users > to shoot themselves in the foot, since the check is in fact right when > it says things won't work: > > |> git checkout v1.2.1 > > mkdir ~/foo > > python setup.py install --home=~/foo > ... > > PYTHONPATH=~/foo python > Python2.7.5 (default, Oct8 2013,12:19:40) > [GCC4.8.1 20130603 (Red Hat4.8.1-1)] on linux2 > Type"help","copyright","credits" or "license" for more information. > >>>import matplotlib > Traceback (most recent call last): > File"<stdin>", line1,in <module> > ImportError: No module named matplotlib| > > I think what you really want to use is |--install-lib|, which will > install the matplotlib library directly inside of the given path, which > (if it's also on the `PYTHONPATH`) it will work. Thank you. That did it! For the record, we do actually want the files in <path>/lib/python. So I fixed it by manually adding <path>/lib/python to PYTHONPATH before running the installer. It would help if the error message showed which path was expected to be on the PYTHONPATH, but now that I know I'm happy. -- Russell |