¿Cuál es la forma más sencilla de hacer una instalación local de usuario de un paquete de Python?


32

No quiero tratar con virtualenv para una instalación local de Python, solo quiero instalar algunos paquetes localmente sin tratar con la PYTHONPATHvariable de entorno, ¿cómo hago eso?


Dices "tratar con" como si virtualenv fuera una molestia. He encontrado exactamente lo contrario para ser verdad. (¿Quizás quieres --system-site-packages?)
Andreas Klöckner

se planteó hipotéticamente :) virtualenv es increíble, pero no se adapta a todos los casos de uso.
Aron Ahmadia

Respuestas:


48

Python (a partir de 2.6 y 3.0 ) ahora busca en el directorio ~ / .local las instalaciones locales, que no requieren privilegios administrativos para instalar, por lo que solo necesita apuntar su instalador a ese directorio.

Si ya ha descargado el paquete fooy desea instalarlo manualmente, escriba:

cd path/to/foo
python setup.py install --user

Si está utilizando easy_install y desea que el paquete se descargue e instale:

easy_install --prefix=$HOME/.local/ foo

Actualización por RafiK

pip install --user foo

La siguiente respuesta se proporciona para fines históricos: es un poco más de trabajo si está utilizando pip para descargar e instalar:

pip install --install-option="--prefix=$HOME/.local" foo

3
actualización: pip ahora es compatible con un indicador de usuario: pip install --user SomePackage (enlace al manual) Utilizando esto, todo debería funcionar de
inmediato,

5

Aunque me gusta Python como lenguaje, distribuir paquetes de Python es un desastre. Siempre encuentro personas que no están familiarizadas con Python luchando con eso.

Junto a la instalación local del usuario, como lo describe Aron (usando --user o --prefix), otra opción es EasyBuild ( http://hpcugent.github.com/easybuild/ ). No solo para paquetes Python, sino para cualquier paquete de software (científico). Una vez que EasyBuild tiene soporte para ello, construir e instalar un paquete de software es básicamente un solo comando.

Para obtener una lista de los paquetes de software compatibles actualmente, consulte https://github.com/hpcugent/easybuild/wiki/List-of-supported-software-packages .

Descargo de responsabilidad: soy desarrollador de EasyBuild.


2

@Aron: asegúrese de agregar la ruta local de paquetes del sitio a la variable de entorno $ PYTHONPATH


Se incluye automáticamente en la ruta del sitio a partir de Python 2.6 y Python 3.0 :)
Aron Ahmadia

@AronAhmadia no si usa la --prefixopción.
Jens Timmerman

@JensTimmerman: la ruta del sitio es donde Python mira cuando se inicia la importación de módulos, cada vez que ejecuta Python. La opción de prefijo especifica dónde instalar un paquete dado cuando está instalando un paquete de Python. Dos nociones completamente separadas.
Aron Ahmadia

@AronAhmadia sí, mi punto es que cuando usas easy_install --prefix = / tmp necesitas agregar "/tmp/lib/pythonx.x/site-packages" a tu variable PYTHONPATH o Python no lo recogerá.
Jens Timmerman

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.