¿Cómo instalar módulos de Python sin acceso root?
Estoy tomando algunas clases universitarias y me han dado una "cuenta de instrucción", que es una cuenta escolar a la que puedo acceder para trabajar. Quiero ejecutar mi código scipy, matplotlib y Numpy computacionalmente intensivo en esa máquina, pero no puedo instalar estos módulos porque no soy 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 llamado "sitio de usuario" (consulte el PEP para obtener más detalles) ejecutando:
pip install --user package_name
A continuación se muestra 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 usa mucha gente, pero, por supuesto, puede especificar cualquier carpeta en la que tenga permisos para escribir).
Deberá crear manualmente
$HOME/local/lib/pythonX.Y/site-packages
y agréguelo a su PYTHONPATH
variable de entorno (de lo contrario, easy_install se quejará; por cierto, ejecute el comando anterior una vez para encontrar el valor correcto para XY).
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
¿No tienes permisos para acceder ni instalar easy_install
?
Luego, puede crear un Python virtualenv
( https://pypi.python.org/pypi/virtualenv ) e instalar el paquete desde este entorno virtual.
Ejecutar 4 comandos en el shell será suficiente (inserte la versión actual como 16.1.0 para XXX):
$ curl --location --output virtualenv-X.X.X.tar.gz https://github.com/pypa/virtualenv/tarball/X.X.X
$ tar xvfz virtualenv-X.X.X.tar.gz
$ python pypa-virtualenv-YYYYYY/src/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 <<EOF
[install]
user=1
EOF
Ahora puedes ejecutar easy_install sin privilegios de root:
easy_install boto
Alternativamente, esto también te permite ejecutar pip sin acceso de root:
pip install boto
Esto funciona para mí.
Fuente del blog de Wesley Tanaka: http://wtanaka.com/node/8095