¿Cómo instalar módulos python sin acceso root?

Estoy tomando algunas clases universitarias y me han dado una ‘cuenta de instrucción’, que es una cuenta de la escuela en la que puedo hacer mi trabajo. Quiero ejecutar mi código Numpy, matplotlib, scipy computacionalmente intensivo en esa máquina, pero no puedo instalar estos módulos porque no soy un administrador del sistema.

¿Cómo puedo hacer la instalación?

En la mayoría de las situaciones, la mejor solución es confiar en la ubicación del “sitio de usuario” (consulte el PEP para obtener más detalles) ejecutando:

pip install --user package_name 

A continuación hay una forma más “manual” de mi respuesta original, no es necesario que la lea si la solución anterior funciona para usted.


Con easy_install puedes hacer:

 easy_install --prefix=$HOME/local package_name 

que se instalará en

 $HOME/local/lib/pythonX.Y/site-packages 

(la carpeta ‘local’ es un nombre típico que usan muchas personas, pero por supuesto puede especificar cualquier carpeta en la que tenga permisos para escribir).

Necesitará crear manualmente

 $HOME/local/lib/pythonX.Y/site-packages 

y agréguelo a su variable de entorno PYTHONPATH (de lo contrario, easy_install se quejará – btw ejecuta el comando anterior una vez para encontrar el valor correcto para XY).

Si no está usando easy_install , busque una opción de prefijo, la mayoría de los scripts de instalación le permiten especificar uno.

Con pip puedes usar:

 pip install --install-option="--prefix=$HOME/local" package_name 

¿No tiene permisos para acceder ni instalar easy_install ?

Luego, puede crear un virtualenv python ( https://pypi.python.org/pypi/virtualenv ) e instalar el paquete desde este entorno virtual.

Ejecutar 3 comandos en el shell será suficiente:

 $ curl -O https://raw.github.com/pypa/virtualenv/master/virtualenv.py $ python virtualenv.py my_new_env $ . my_new_env/bin/activate (my_new_env)$ pip install package_name 

Fuente y más información: https://virtualenv.pypa.io/en/latest/installation/

Puede ejecutar easy_install para instalar paquetes de Python en su directorio de inicio incluso sin acceso de root. Hay una forma estándar de hacer esto usando site.USER_BASE, que por defecto es algo como $ HOME / .local o $ HOME / Library / Python / 2.7 / bin y se incluye de forma predeterminada en PYTHONPATH

Para hacer esto, cree un .pydistutils.cfg en su directorio de inicio:

 cat > $HOME/.pydistutils.cfg < 

Ahora puedes ejecutar easy_install sin privilegios de root:

 easy_install boto 

Alternativamente, esto también le permite ejecutar pip sin acceso root:

 pip install boto 

Esto funciona para mi

Fuente del blog de Wesley Tanaka: http://wtanaka.com/node/8095

Si tiene que usar un script setup.py de setup.py , hay algunas opciones de línea de comandos para forzar un destino de instalación. Consulte http://docs.python.org/install/index.html#alternate-installation . Si este problema se repite, puede configurar un archivo de configuración de distutils, consulte http://docs.python.org/install/index.html#inst-config-files .

La configuración de la variable PYTHONPATH se describe en esta publicación.

Pregunta importante. El servidor que uso (Ubuntu 12.04) tenía easy_install3 pero no pip3 . Así es como instalé Pip y luego otros paquetes en mi carpeta de inicio

  1. Pidió al administrador que instale el paquete Ubuntu python3-setuptools

  2. Pip instalado

Me gusta esto:

  easy_install3 --prefix=$HOME/.local pip mkdir -p $HOME/.local/lib/python3.2/site-packages easy_install3 --prefix=$HOME/.local pip 
  1. Agregar Pip (y otras aplicaciones de Python a la ruta)

Me gusta esto:

 PATH="$HOME/.local/bin:$PATH" echo PATH="$HOME/.local/bin:$PATH" > $HOME/.profile 
  1. Instalar el paquete Python

Me gusta esto

 pip3 install --user httpie # test httpie package http httpbin.org 

Yo uso JuJu, que básicamente permite tener una distribución Linux realmente pequeña (que contiene solo el administrador de paquetes) dentro de su directorio $ HOME / .juju.

Permite tener su sistema personalizado dentro del directorio de inicio accesible a través de proot y, por lo tanto, puede instalar cualquier paquete sin privilegios de root. Se ejecutará correctamente en todas las principales distribuciones de Linux, la única limitación es que JuJu puede ejecutarse en el kernel de Linux con la versión 2.6.32 mínima recomendada.

Por ejemplo, después de instalar JuJu para instalar pip solo escribe lo siguiente:

 $>juju -f (juju)$> pacman -S python-pip (juju)> pip 

La forma mejor y más fácil es este comando:

 pip install --user package_name 

http://www.lleess.com/2013/05/how-to-install-python-modules-without.html#.WQrgubyGOnc