2012-02-19 16 views
26

Tengo easy_install y pip.¿Cómo instalar virtualenv sin usar sudo?

Tuve muchos errores en mi Linux Mint 12, acabo de volver a instalarlo y quiero volver a instalar todo desde cero.

This es uno de los errores que tuve. He recibido una respuesta interesante allí:

Stop using su and sudo to run virtualenv.
You need to run virtualenv as your normal user.
You have created the virtualenv with sudo which is why you are getting these errors.

Entonces, ¿cómo instalar virtualenv sin utilizar sudo? ¿Puedo usar pip o easy_install sin usar sudo? ¿O hay otra manera?

+2

Tenga en cuenta que cuando se dice '' su' y sudo', lo que realmente significa es que 'root'. Estás ejecutando 'virtualenv' como root, y' virtualenv' no quiere que se ejecute como root. Baja los privilegios y vuelve a intentarlo. –

+0

Hay una gran diferencia entre instalar 'virtualenv' como root, versos * ejecutar * como root. La cita que inserta no se trata de instalar 'virtualenv', sino de usarlo para configurar un entorno virtual para un proyecto de Python. – jpaugh

Respuesta

25

Esta solución es adecuada en los casos en que no hay disponible virtualenv en todo el sistema y no se puede convertir en root para instalar virtualenv. Cuando configuro un Debian para desarrollo o implementación de Python, siempre apt-get install python-virtualenv. Es más conveniente tenerlo cerca que hacer el bootstrap que se indica a continuación. Pero sin poder de raíz, puede ser el camino a seguir:

Hay un mecanismo de arranque que debería ponerlo en marcha.

Leer: http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python

En esencia podría hacer esto en su directorio personal en un entorno UNIX:

Dada su pitón es la versión 2,6

 

    $ mkdir ~/bin 
    $ mkdir -p ~/lib/python2.6 
    $ mkdir -p ~/local/lib/python2.6/dist-packages 
    $ wget http://peak.telecommunity.com/dist/virtual-python.py 
    $ python virtual-python.py --no-site-packages 
    $ wget http://peak.telecommunity.com/dist/ez_setup.py 
    $ ~/bin/python ez_setup.py 
    $ ~/local/bin/easy_install virtualenv 
    $ ~/local/bin/virtualenv --no-site-packages thereyouare 

No puede haber espacio para la optimización. No me gusta la ruta local. Solo bin y lib serían agradables. Pero hace su trabajo.

+0

¡Muchas gracias por su solución! Usando 'python virtual-python.py --no-site-packages --prefix = \' pwd \ '', podemos instalar 'virtual-python' en una carpeta que no sea la carpeta de inicio, para evitar la contaminación del directorio. –

+2

con el modificador -p, solo necesita la tercera línea ... la creación de directorios recursivos simplemente sucede. – RobotHumans

+14

Quizás esto era válido para versiones anteriores de virtualenv. Por ahora, si quieres ejecutar virtualenv en una máquina, no eres root: descarga y descomprime uno si estos: 'https: // github.com/pypa/virtualenv/releases', entonces simplemente ejecuta' python virtualenv.py/path/to/new/virtualenv/to/create' – Claude

14

La idea general es instalar virtualenv sí globaly, es decir sudo easy_install virtualenv o sudo pip install virtualenv, pero luego crear el entorno virtual real ("ejecutar virtualenv") a nivel local.

+3

//, La pregunta es, sin embargo, cómo. Muchos de los paquetes virtualenv, especialmente para CEntOS 6, terminan requiriendo sudo una vez instalado. –

8

http://opensourcehacker.com/2012/09/16/recommended-way-for-sudo-free-installation-of-python-software-with-virtualenv/ sugiere lo siguiente:

curl -L -o virtualenv.py https://raw.githubusercontent.com/pypa/virtualenv/master/virtualenv.py 
python virtualenv.py vvv-venv 
. vvv-venv/bin/activate 
pip install vvv 

Parece que funciona bien. Me permite instalar https://github.com/miohtama/vvv con pip.

si se obtiene:

Cannot find sdist setuptools-*.tar.gz 
Cannot find sdist pip-*.tar.gz 

Trate --extra-search-dir después de descargar los archivos de código en https://github.com/pypa/virtualenv/tree/develop/virtualenv_support

2

He creado un "portátil" version of virtualenv.

wget https://bitbucket.org/techtonik/locally/raw/tip/06.get-virtualenv.py 
python 06.get-virtualenv.py 

descarga virtualenv.py guión con dependencias en .locally subdirectorio y lo ejecuta desde allí. Una vez hecho esto, la secuencia de comandos con .locally/subdir se puede copiar en cualquier lugar.

+0

Utilizando su solución obtengo este error: 'Comprobando hash/size para /files/spegni/.locally/virtualenv.py Traza (última llamada): Archivo "06.get-virtualenv.py "línea 163, en getsecure (LOOT, especificaciónDeArchivo) Archivo "06.get-virtualenv.py", línea 132, en getsecure cheque (ruta de archivo, entrada [ 'hashsize'], tranquilo) Archivo" 06 .get-virtualenv.py", línea 113, el registro de entrada % (filepath, Shize, hashsize (filepath))) __main __ HashSizeCheckFailed:. Hash/desajuste de tamaño para /files/spegni/.locally/virtualenv.py exp: a506a836ef76301bc19e5a209984a4286529a79b 98.477 acto:.. d205cbd6783332a212c5ae92d73c77178c2d2f28 9' – FSp

+0

@FSp, equipo pypa mató a la rama de la versión 1.11.x fijo Pruebe ahora –

+1

Actualizado a virtualenv 12.0.7 –

6

También puede usar el siguiente comando, funcionó para mí sin sudo acceso. También puede necesitar modificar su variable de entorno PYTHONPATH utilizando export, see this SO answer for more details.

pip install --user virtualenv

3

This trabajó para mí:

pip install --target=$HOME/virtualenv/ virtualenv 
cd somewhere/ 
python $HOME/virtualenv/virtualenv.py env 
. env/bin/activate 

Ahora puedo pip install lo que quiera (a excepción de todo lo que necesita para compilar cosas con gcc y le faltan dependencias tales como las bibliotecas de desarrollo Python y Python.h).

1

Es posible que desee considerar el uso de Anaconda. Es una distribución de Python completa, que vive en una carpeta, p. su directorio personal No sudo es necesario en cualquier punto y obtiene la mayoría de los paquetes populares.

$ wget https://.../Anaconda2-2.5.0-Linux-x86_64.sh # check the website for the exact URL, it can change 
$ bash Anaconda2-2.5.0-Linux-x86_64.sh 
$ conda install virtualenv 
2

Básicamente la idea es instalar virtualenv (o cualquier otro paquete python) en ${HOME}/.local. Esta es la ubicación más adecuada ya que está incluida en la ruta de Python por defecto (y no solo en Python).

Eso haces por pip3 install virtualenv --prefix=${HOME}/.local (es posible que tengas que expandir ${HOME}). Asegúrese de que usted tiene en su export PATH=${HOME}/.local/bin:${PATH}~/.profile (puede que tenga que source ~/.profile si acaba de agregar)

0

La manera más fácil que he visto hasta ahora es la instalación de Anaconda. Puede ser una exageración para usted. Para mí, el centOS que se ejecuta en el servidor remoto solo tenía instalado python2.6. Anaconda por defecto instala todo localmente + es python2.7

curl -O https://repo.continuum.io/archive/Anaconda2-4.2.0-Linux-x86_64.sh 

Entonces

bash Anaconda2-4.2.0-Linux-x86_64.sh 

Boom. Tienes todos los paquetes como numpy y pip instalados. Entonces, si usted quiere virtualenv, sólo tiene que escribir

pip install virtualenv 
+0

Esto no responde a la pregunta de OP ya tiene pip y quiere.. instalar virtualenv sin hacer sud o – MYGz

+0

@Ghazi La pregunta dice: "Quiero volver a instalar todo desde cero". De nuevo, incluso si no responde la pregunta del OP con precisión, alguien más lo encontrará útil como I. –

+0

¿Y qué es "todo" definido como? Anaconda es todo de acuerdo a ti? – MYGz

Cuestiones relacionadas