2010-08-02 12 views
7

Una pregunta novato, pero .....setuptools Instalación en una versión privada del pitón

he instalado python2.7 en un host en la versión del sistema es de 2,3 (2,7 a ~/python2.7/bin /pitón). Me gustaría agregar algunos paquetes como MySQLdb pero necesito herramientas de configuración.

Las instrucciones dicen que puede usar --prefix como argumento. Sin embargo, si hago lo siguiente: SH-setuptools 0.6c11-py2.7.egg --prefix = ~/python2.7/bin/python

me sale el error msg: -bash-3.00 $ sh setuptools-0.6c11-py2.7.egg --prefix = ~/python2.7/bin/python setuptools-0.6c11-py2.7.egg: línea 3: exec: python2.7: no encontrado

¿No estoy usando el comando --prefix correctamente? Naturalmente, al escribir sh setuptools-0.6c11-py2.7.egg --help tampoco puede encontrar Python.

¿Cómo le digo setuptools dónde encontrar pitón de manera explícita? ¿Alguno otro problema que deba tener en cuenta?

Respuesta

2

Agregar ~/python2.7/bin a su PATH, por ejemplo .:

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

Esto debería funcionar sin necesidad de un prefijo, ya que en sí pitón le dirá setuptools lo que su defecto es --prefix.

+1

Útil. Tenía python2.7 en mi camino, pero no en el camino utilizado por sudo. – Mead

5

Soy un tipo anticuado y evitar el uso de huevos, por lo general descargar el paquete de archivos de código fuente, extracto de él y utilizar setup.py

Cuando se trabaja con múltiples versiones de Python, que suelo llamar la requerida de manera explícita, como esto:

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

también hay una manera de hacer un "chroot" preliminar al instalar:

$ python setup.py install --root /tmp 

esto es útil cuando se desea un temporal en atascarse en un determinado directorio, que luego se usa para crear un paquete específico de la distribución.

Este flujo de trabajo siempre me sirve.

2

Para instalar easy_install para una versión específica de python. Acabo de instalar desde la fuente y usé la versión de python en la que también quiero instalar setuptools. Usé los siguientes pasos en Ubuntu 11.04 con Python 2.5 y Python 2.7 instalados.

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 

El siguiente comando instala un módulo de Python a 2,5:

sudo easy_install-2.5 pil 

Este comando instala un módulo de 2,7

sudo easy_install-2.7 pil 
1

Entonces me encontré con el mismo problema y las soluciones anteriores hice no funciona para mi Sin embargo, lo que hizo el trabajo (y que es un poco hacky) estaba creando un enlace simbólico temporal a donde está instalado el Python:

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 

Advertencia: Este es el supuesto de que Python está instalado, por lo que si los comandos mv fallan, entonces Eso debería estar bien.

0

Tuve el mismo error debido al hecho de que Python2.7 no estaba en la ruta utilizada por sudo.
Acabo de agregar:
alias sudo='sudo env PATH=$PATH'
antes de ejecutar el instalador.

Cuestiones relacionadas