2011-09-19 34 views
162

Estoy tomando algunas clases de la universidad y me han dado una "cuenta de instrucción", que es una cuenta de la escuela en la que puedo ingresar para hacer el 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 instalar módulos de Python sin acceso a la raíz?

¿Cómo puedo hacer la instalación?

+12

Puede pasar --user o --prefix a setup.py para el paquete que está instalando para instalarlo localmente.Ver [instalación de alertnative para módulos de Python] (http://docs.python.org/install/index.html#alternate-installation) – arunkumar

Respuesta

225

En la mayoría de situaciones, la mejor solución es confiar en la llamada ubicación "sitio del usuario" (ver el PEP para más detalles) ejecutando:

pip install --user package_name 

A continuación se muestra una forma más "manual" de mi respuesta original, no necesita leerlo si la solución anterior funciona para usted.


Con easy_install que puede hacer:

easy_install --prefix=$HOME/local package_name 

que instalará en

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

(la carpeta 'local' es un nombre típico utilizan muchas personas, pero, por supuesto, es posible que especifica cualquier carpeta en la que tengas permisos para escribir).

Usted tendrá que crear manualmente

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

y añadirlo a la variable de entorno PYTHONPATH (de lo contrario easy_install se quejan - por cierto ejecutar el comando anterior vez para encontrar el valor correcto para X.Y).

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 la pipa puede utilizar:

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

¿y si python no tiene 'pip' y' easy_install' disponibles? – Girardi

+1

@Girardi: luego [install 'pip'] (http://stackoverflow.com/a/13958308/4279) – jfs

+0

sí, eso es lo que solicité al administrador =) – Girardi

8

Si tiene que utilizar un distutils setup.py guión, hay algunas opciones de línea de comandos para forzar a un destino de la instalación. Ver 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.

El establecimiento de la variable PYTHONPATH se describe en la publicación de tihos.

+1

Muchas gracias. He instalado con éxito la biblioteca 'lxml' utilizando' python /setup.py install --home =

' –

36

También puede crear una python virtualenv (https://pypi.python.org/pypi/virtualenv), especialmente cuando no tenga permisos para acceder ni instalar el comando easy_install.

Ejecución de 3 comandos de la shell serán suficientes:

$ 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/

+0

Esta respuesta me ha resultado útil en un sistema sin' pip' instalado. –

+0

Intenté una variante para mi instalación de python local. curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | ~/Python-2.7.8/python – Neerav

+2

La fuente parece haberse movido y lo anterior no funciona de la caja. Las instrucciones similares en 'https: // virtualenv.pypa.io/en/latest/installation /' funcionan bien :) :) –

5

pregunta importante. El servidor que uso (Ubuntu 12.04) tenía easy_install3 pero no pip3.Esta es la forma en que he instalado incrustadas y otros paquetes a mi carpeta de inicio

  1. administrador solicita la instalación de Ubuntu paquete python3-setuptools

  2. pip Instalado

De esta manera:

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

De esta manera:

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

como esto

pip3 install --user httpie 

# test httpie package 
http httpbin.org 
2

utilizo JuJu cuales básicamente permite tener una realmente t iny linux distribution (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 prox y, por lo tanto, puede instalar cualquier paquete sin privilegios de administrador. Se ejecutará correctamente en todas las principales distribuciones de Linux, la única limitación es que JuJu puede ejecutarse en el núcleo de Linux con la versión mínima recomendada 2.6.32.

Por ejemplo, después de instalado JuJu instalar pip simplemente escriba lo siguiente:

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

Puede ejecutar easy_install para instalar los paquetes de Python en su directorio personal, incluso sin acceso root. Hay una forma estándar de hacerlo utilizando el sitio.USER_BASE que por defecto es $ USD/.local o $ HOME/Library/Python/2.7/bin y está incluido por defecto en PYTHONPATH

Para hacer esto, crea un .pydistutils.cfg en su directorio personal:

cat > $HOME/.pydistutils.cfg <<EOF 
[install] 
user=1 
EOF 

Ahora puede ejecutar easy_install sin privilegios de root:

easy_install boto 

por otra parte, esto también le permite ejecutar PIP sin acceso root:

pip install boto 

Esto funciona para mí.

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

+1

Esto funcionó para que lo instale sin acceso de root en el servidor de Linux. Gracias Pero no tengo idea de por qué funcionó. ¿Puede cualquier cuerpo dar una pista? – ChathuraG

Cuestiones relacionadas