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


Estoy tomando algunas clases en la universidad y se me ha dado una "cuenta de instrucción", que es una cuenta de la escuela en la que puedo ssh para hacer trabajo. Quiero ejecutar mi código computacionalmente intensivo Numpy, matplotlib, scipy 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?

Author: Michael Petrotta, 2011-09-19

7 answers

En la mayoría de las situaciones, la mejor solución es confiar en la ubicación del llamado "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 necesita leerla 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 muchas personas usan, pero por supuesto puede especificar cualquier carpeta que tenga permisos para escribir).

Tendrá que 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á bt por cierto, ejecute el comando anterior una vez para encontrar el valor correcto para X. Y).

Si no está utilizando 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
 248
Author: tiho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-17 19:49:19

No hay permisos para acceder ni instalar easy_install?

Entonces, puede crear un python virtualenv (https://pypi.python.org/pypi/virtualenv ) e instale 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 /

 41
Author: tremendows,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-20 10:59:25

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

Para hacer esto, cree 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

Alternativamente, 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

 10
Author: yusong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-01 16:48:38

Si tiene que usar un script distutils setup.py, hay algunas opciones de línea de comandos para forzar un destino de instalación. Véase 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 .

Establecer la variable PYTHONPATH se describe en tihos post.

 8
Author: rocksportrocker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-19 10:51:45

Pregunta Importante. El servidor que utilizo (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. Se le pidió al administrador que instalara el paquete Ubuntu python3-setuptools

  2. Pip instalado

Así:

 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 Python a path)

Así:

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

Así

pip3 install --user httpie

# test httpie package
http httpbin.org
 5
Author: Colonel Panic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-09 22:34:24

Utilizo JuJu que básicamente permite tener una distribución linux muy pequeña (que contiene solo el gestor de paquetes) dentro de su HOME HOME/.directorio juju.

Permite tener su sistema personalizado dentro del directorio home 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 una versión mínima recomendada 2.6.32.

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

$>juju -f
(juju)$> pacman -S python-pip
(juju)> pip
 2
Author: user967489,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-02 18:21:50

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

pip install --user package_name

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

 1
Author: user3108764,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-04 08:21:14