2010-08-02 4 views
7

Une question de débutant, mais .....setuptools Installation dans une version privée de python

J'ai installé python2.7 sur un hôte où la version du système est de 2,3 (2,7 à ~/python2.7/bin /python). Je voudrais ajouter quelques paquets tels que MySQLdb mais j'ai besoin de setuptools.

Les instructions indiquent que vous pouvez utiliser --prefix comme argument. Cependant, si je fais ce qui suit: sh setuptools-0.6c11-py2.7.egg prefix = ~/python2.7/bin/python

Je reçois l'erreur msg: -bash-3,00 $ sh setuptools-0.6c11-py2.7.egg prefix = ~/python2.7/bin/python setuptools-0.6c11-py2.7.egg: ligne 3: exec: python2.7: not found

Est-ce que je n'utilise pas la commande --prefix correctement? Naturellement, taper sh setuptools-0.6c11-py2.7.egg --help ne trouve pas non plus python.

Comment indiquer à setuptools où trouver explicitement python? D'autres problèmes dont je dois être conscient?

Répondre

2

Ajouter ~/python2.7/bin à votre PATH, .: par exemple

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

Cela devrait alors fonctionner sans avoir besoin d'un préfixe, depuis python lui-même dira-t-setuptools ce que son prefix par défaut est.

+1

Utile. J'ai eu python2.7 dans mon chemin, mais pas dans le chemin utilisé par sudo. – Mead

5

Je suis un gars vieux jeu et j'éviter d'utiliser des œufs, je télécharger habituellement le code source tarball, extrait et utilise setup.py

Lorsque vous traitez avec plusieurs versions de python, je l'appelle habituellement celui requis explicitement, comme ceci:

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

Il y a aussi une façon de faire un « chroot » préliminaire lors de l'installation:

$ python setup.py install --root /tmp 

Ceci est utile lorsque vous voulez un temporaire décrochage dans un certain répertoire, qui s'utilise plus tard pour construire un paquet spécifique à la distribution.

Ce flux de travail me sert toujours bien.

2

Pour installer easy_install pour une version python spécifique. Je viens d'installer à partir de la source et utilisé la version python que vous voulez installer setuptools aussi. J'ai utilisé les étapes suivantes dans Ubuntu 11.04 avec Python 2.5 et Python 2.7 installés.

wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefe74e 
tar -zxvf setuptools-0.6c11.tar.gz 
cd setuptools-0.6c11/ 
sudo python2.5 setup.py build 
sudo python2.5 setup.py install 

La commande suivante installe un module python à 2,5:

sudo easy_install-2.5 pil 

Cette commande installe un module à 2,7

sudo easy_install-2.7 pil 
1

Je suis tombé sur le même problème et les solutions ci-dessus ne ne travaille pas pour moi. Cependant, ce qui a fait le travail (et il est un peu hacky) a été crée un lien symbolique temporaire où votre Python est installé:

sudo mv /usr/bin/python /usr/bin/python.bak 

sudo ln -s ~/python2.7/bin/python /usr/bin/python 

sh setuptools-0.6c11-py2.7.egg --prefix=~/python2.7/bin/python 

rm /usr/bin/python 

mv /usr/bin/python.bak /usr/bin/python 

Attention: Ceci est en supposant que Python est installé, donc si les commandes mv échouent, cela devrait être bien.

0

J'ai eu la même erreur due au fait que Python2.7 n'était pas sur le chemin utilisé par sudo.
Je viens d'ajouter:
alias sudo='sudo env PATH=$PATH'
avant d'exécuter le programme d'installation.

Questions connexes