tags:

views:

117

answers:

2

A newbie question but.....

I've installed python2.7 on a host where the system version is 2.3 (2.7 at ~/python2.7/bin/python). I'd like to add a few packages such as MySQLdb but need setuptools.

The directions say that you can use --prefix as an argument. However, if I do the following: sh setuptools-0.6c11-py2.7.egg --prefix=~/python2.7/bin/python

I get the error msg: -bash-3.00$ sh setuptools-0.6c11-py2.7.egg --prefix=~/python2.7/bin/python setuptools-0.6c11-py2.7.egg: line 3: exec: python2.7: not found

Am I not using the --prefix command correctly? Naturally, typing sh setuptools-0.6c11-py2.7.egg --help can't find python either.

How do I tell setuptools where to find python explicitly? Any other issues I need to be aware of?

A: 

Add ~/python2.7/bin to your PATH, e.g.:

$ export PATH=$PATH:~/python2.7/bin
$ sh setuptools-0.6.c11-py2.7.egg

This should then work without needing a prefix, since python itself will tell setuptools what its default --prefix is.

pjeby
A: 

I'm an old-fashioned guy and I avoid using eggs, I usually download the source code tarball, extract it and use setup.py

When dealing with multiple python versions, I usually call the required one explicitly, like this:

$ /usr/bin/python2.6 setup.py build
$ sudo /usr/bin/python2.6 setup.py install

There is also a way to do a preliminary "chroot" when installing:

$ python setup.py install --root /tmp

This is useful when you want a temporary install into a certain directory, which later gets used to build a distro-specific package.

This workflow always serves me well.

jedi_coder