Ticket #4563 (new defect)

Opened 14 months ago

Python bindings installation ignores prefix

Reported by: mwtoews Owned by: hobu
Priority: normal Milestone:
Component: PythonBindings Version: 1.9.0
Severity: normal Keywords:
Cc:

Description

On a system where I don't have root privileges, and would like to install python bindings, I'm using:

configure --prefix=/some/path --with-python

where the prefix path I have group r/w privileges. However, I get an error with make install.

Here are excerpts of the error, where /some/src/gdal-1.9.0 is the source directory that I'm building from and /some/path is the desired install prefix:

$ make install
...
Libraries have been installed in:
   /some/path/lib
...
/bin/sh /some/src/gdal-1.9.0/libtool --mode=install /some/src/gdal-1.9.0/install-sh -c gdal-config-inst /some/path/bin/gdal-config
libtool: install: /some/src/gdal-1.9.0/install-sh -c gdal-config-inst /some/path/bin/gdal-config
make[1]: Leaving directory `/some/src/gdal-1.9.0/apps'
(cd swig; make install)
make[1]: Entering directory `/some/src/gdal-1.9.0/swig'
for dir in python ; do (cd $dir; make install) || exit; done
make[2]: Entering directory `/some/src/gdal-1.9.0/swig/python'
python setup.py install
running install
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

    [Errno 13] Permission denied: '/usr/lib64/python2.6/site-packages/test-easy-install-12914.write-test'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

    /usr/lib64/python2.6/site-packages/

Perhaps your account does not have write access to this directory?  If the
installation directory is a system-owned directory, you may need to sign in
as the administrator or "root" account.  If you do not have administrative
access to this machine, you may wish to choose a different installation
directory, preferably one that is listed in your PYTHONPATH environment
variable.

For information on other options, you may wish to consult the
documentation at:

  http://peak.telecommunity.com/EasyInstall.html

Please make the appropriate changes for your system and try again.

make[2]: *** [install] Error 1
make[2]: Leaving directory `/some/src/gdal-1.9.0/swig/python'
make[1]: *** [install] Error 2
make[1]: Leaving directory `/some/src/gdal-1.9.0/swig'
make: *** [install-actions] Error 2

Normally, when I install python extensions on this machine, I use:

python setup.py install --prefix=/some/path

As a working hack solution, I modified swig/python/GNUmakefile to hardcode the prefix:

ifeq ($(PY_HAVE_SETUPTOOLS),1)
        $(PYTHON) setup.py install --prefix=/some/path
else
        $(PYTHON) setup.py install --prefix=$(DESTDIR)$(prefix)
endif

Is there a better way to do this? Is it safe to assume that the python bindings should have the same prefix? (i.e., gdal-config --prefix)

Note: See TracTickets for help on using tickets.