¿Cuál es la forma correcta de instalar pip, virtualenv y distribuir para Python?

247

Pregunta corta

Antecedentes

En mi respuesta a la pregunta SO 4314376 , recomendé usar ez_setuppara que luego pueda instalar pipy de la virtualenvsiguiente manera:

curl -O http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py
sudo easy_install pip
sudo pip install virtualenv

Originalmente extraje estas instrucciones de la publicación del blog de Jesse Noller. ¿Quieres usar Python en la Mac? . Me gusta la idea de mantener un directorio global de paquetes de sitio limpio, por lo que los únicos otros paquetes que instalo son virtualenvwrappery distribute. (Recientemente agregué distributea mi caja de herramientas debido a este anuncio de servicio público de Python . Para instalar estos dos paquetes, utilicé:

sudo pip install virtualenvwrapper
curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py

No más herramientas de instalación y fácil instalación

Para seguir realmente ese anuncio de servicio público de Python , en una nueva instalación de Python, haría lo siguiente:

curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py
sudo easy_install pip
sudo pip install virtualenv
sudo pip install virtualenvwrapper

Reprimenda de glifo

En un comentario a mi respuesta a la pregunta 4314376 de SO, el usuario de SO Glyph declaró:

NO. NUNCA hagas sudo python setup.py installlo que sea. Escriba un ~ / .pydistutils.cfg que ponga su instalación de pip en ~ / .local o algo así. Especialmente los archivos nombrados ez_setup.pytienden a succionar versiones más nuevas de cosas como setuptools y easy_install, que potencialmente pueden romper otras cosas en su sistema operativo.

De vuelta a la pregunta corta

Entonces la respuesta de Glyph me lleva a mi pregunta original:

Matthew Rankin
fuente
Matthew, sé que este hilo es bastante viejo. ¿Pero hay algo nuevo en este frente? ¿Sigue siendo una mala idea hacer python distribute_setup.pyseguido de easy_install pipy virtualenv --distribute venv? (ver python-guide.readthedocs.org/en/latest/starting/install/… ), y si es así, ¿por qué?
Amelio Vazquez-Reina
2
¿Qué tiene de malo sudo apt-get install python-{pip,virtualenv}?
MestreLion
1
Sí, generalmente los paquetes más antiguos pero compatibles están bien cuando las versiones menores no son importantes para sus propósitos, pero usted específicamente preguntó "qué le pasa" y estoy tratando de obtener mi insignia pedante.
2
Para su información, varios eslabones de esta pregunta se ha quedado desfasado / rotos - que en la actualidad (no puedo) ver a los pip, virtualenvy el PSA Python.
Chris Sprague
1
http://python-distribute.org/distribute_setup.pyredirige a 404 :(
jitter

Respuestas:

173

Puede hacer esto sin instalar nada en Python.

No necesitas sudo ni ningún privilegio.

No necesita editar ningún archivo.

Instale virtualenv en un entorno virtual de arranque. Use ese entorno virtual para crear más. Como virtualenv se entrega con pip y distribuir, obtienes todo desde una instalación.

  1. Descargar virtualenv:
  2. Desempaquete el tarball fuente
  3. Use el tarball desempaquetado para crear un entorno virtual limpio. Este entorno virtual se usará para "arrancar" a otros. Todos sus entornos virtuales contendrán automáticamente pip y distribuirán.
  4. Usando pip, instale virtualenv en ese entorno de arranque.
  5. ¡Usa ese entorno de arranque para crear más!

Aquí hay un ejemplo en bash:

# Select current version of virtualenv:
VERSION=12.0.7
# Name your first "bootstrap" environment:
INITIAL_ENV=bootstrap
# Set to whatever python interpreter you want for your first environment:
PYTHON=$(which python)
URL_BASE=https://pypi.python.org/packages/source/v/virtualenv

# --- Real work starts here ---
curl -O $URL_BASE/virtualenv-$VERSION.tar.gz
tar xzf virtualenv-$VERSION.tar.gz
# Create the first "bootstrap" environment.
$PYTHON virtualenv-$VERSION/virtualenv.py $INITIAL_ENV
# Don't need this anymore.
rm -rf virtualenv-$VERSION
# Install virtualenv into the environment.
$INITIAL_ENV/bin/pip install virtualenv-$VERSION.tar.gz

Ahora puede usar su entorno "bootstrap" para crear más:

# Create a second environment from the first:
$INITIAL_ENV/bin/virtualenv py-env1
# Create more:
$INITIAL_ENV/bin/virtualenv py-env2

¡Vuélvete loco!

Nota

Esto supone que no está utilizando una versión realmente antigua de virtualenv. Las versiones anteriores requerían las banderas --no-site-packges(y dependiendo de la versión de Python --distribute). Ahora puede crear su entorno de arranque con solo python virtualenv.py path-to-bootstrapo python3 virtualenv.py path-to-bootstrap.

Walker Hale IV
fuente
13
Tedioso solo porque es muy genérico, una simple descarga, se descomprime y luego python virtualenv.py TARGET_DIRECTORYhace lo mismo.
Sebastian Blask
3
Esto es brillante. Lo adapté para responder a mi pregunta más específica sobre la instalación de virtualenv en múltiples versiones de Python independientemente de los paquetes del sistema - stackoverflow.com/questions/6812207/… - funciona perfectamente.
david.libremone
66
nota: current virtualenvno necesita las opciones '--no-site-packages --distribute'. --system-site-packagesPodría ser necesario lo contrario
jfs
1
Puede obtener el último tarball estable con este comando:curl -Lo virtualenv-tmp.tar.gz 'https://github.com/pypa/virtualenv/tarball/master'
Bohr
1
¿Dónde lo instalas virtualenvwrapper? Los documentos advierten específicamente que no lo instalen en un virtualenv (aunque parece funcionar ).
Aryeh Leib Taurog
21

Creo que Glifo significa hacer algo como esto:

  1. Cree un directorio ~/.local, si aún no existe.
  2. En su ~/.bashrc, asegúrese de que ~/.local/binesté encendido PATHy que ~/.localesté encendido PYTHONPATH.
  3. Crear un archivo ~/.pydistutils.cfgque contenga

    [install]
    prefix=~/.local
    

    Es un archivo estándar de formato ConfigParser.

  4. Descargar distribute_setup.py y ejecutar python distribute_setup.py(no sudo). Si se queja de un site-packagesdirectorio no existente , créelo manualmente:

    mkdir -p ~ / .local / lib / python2.7 / site-packages /

  5. Ejecute which easy_installpara verificar que proviene de~/.local/bin

  6. correr pip install virtualenv
  7. correr pip install virtualenvwrapper
  8. Cree una carpeta virtual que contenga env, digamos ~/.virtualenvs
  9. En ~/.bashrcagregar

    export WORKON_HOME
    source ~/.local/bin/virtualenvwrapper.sh
    

Eso es todo, no se usa sudoen absoluto y su entorno Python está en ~/.local, completamente separado del Python del sistema operativo. Descargo de responsabilidad: no estoy seguro de cuán compatible virtualenvwrapperes en este escenario, no pude probarlo en mi sistema :-)

Vinay Sajip
fuente
2
¿~ / .Local es un nombre un poco tonto? ¿Qué pasa si Ruby quiere hacer lo mismo? Tal vez ~ / .python27 sería mejor?
Jonathan Hartley
1
Solo una nota, acabo de intentar lo mismo en Windows y tuve que agregar tanto la carpeta local (llamada "local" por ejemplo) como "local \ Lib \ site-packages" a PYTHONPATH para ejecutar con éxito distribut_setup.py.
Technomalogical
1
Un último problema con este enfoque: virtualenv es incompatible con el uso del archivo .pydistutils.cfg. Ver github.com/pypa/virtualenv/issues/88
Dan
3
Creo que debería haber un easy_install pippaso entre 5 y 6.
SiggyF
55
Lo ~ / .local proviene de PEP 370.
Éric Araujo
16

Si sigue los pasos recomendados en varios tutoriales que vinculé en esta respuesta , puede obtener el efecto deseado sin los pasos "manuales" algo complicados en las respuestas de Walker y Vinay. Si estás en Ubuntu:

sudo apt-get install python-pip python-dev

El equivalente se logra en OS X utilizando homebrew para instalar python (más detalles aquí ).

brew install python

Con pipinstalado, puede usarlo para obtener los paquetes restantes (puede omitir sudoen OS X, ya que está utilizando su instalación local de Python).

sudo pip install virtualenvwrapper

(estos son los únicos paquetes que necesita instalar a nivel mundial y dudo que choque con cualquier nivel de sistema del sistema operativo. Si desea estar súper seguro, puede mantener las versiones de la distribución sudo apt-get install virtualenvwrapper)

Nota: en Ubuntu 14.04 recibo algunos errores con la instalación de pip , así que uso pip3 install virtualenv virtualenvwrappery agrego VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3a mi .bashrc/.zshrcarchivo.

Luego anexas a tu .bashrcarchivo

export WORKON_HOME
source /usr/local/bin/virtualenvwrapper.sh

y la fuente

. ~/.bashrc

Esto es básicamente eso. Ahora la única decisión es si desea crear un virtualenv para incluir paquetes a nivel de sistema

mkvirtualenv --system-site-packages foo

donde los paquetes del sistema existentes no tienen que reinstalarse, se vinculan simbólicamente a las versiones del intérprete del sistema. Nota: aún puede instalar nuevos paquetes y actualizar los paquetes incluidos incluidos desde el sistema sin sudo. Lo probé y funciona sin interrupciones del intérprete del sistema.

kermit@hocus-pocus:~$ sudo apt-get install python-pandas
kermit@hocus-pocus:~$ mkvirtualenv --system-site-packages s
(s)kermit@hocus-pocus:~$ pip install --upgrade pandas
(s)kermit@hocus-pocus:~$ python -c "import pandas; print(pandas.__version__)"
0.10.1
(s)kermit@hocus-pocus:~$ deactivate
kermit@hocus-pocus:~$ python -c "import pandas; print(pandas.__version__)"
0.8.0

La alternativa, si desea un entorno completamente separado, es

mkvirtualenv --no-site-packages bar

o dado que esta es la opción predeterminada, simplemente

mkvirtualenv bar

El resultado es que tiene un nuevo virtualenv donde puede instalar de forma libre y sin problemas sus paquetes favoritos

pip install flask
metakermit
fuente
¿No instala esto tanto setuptools como distribuir? ¿Y eso no rompe paquetes como Tkinter y pyopencl que no les gustan las herramientas de configuración?
placas
¿Establecer WORKON_HOME en nulo en bashrc obliga a venvwrapper a usar algo razonable como export WORKON_HOME="$HOME/.virtualenvs"?
placas
Bueno, instala lo que su administrador de paquetes dice que depende de pip. Actualmente, eso es setuptools en Ubuntu y OS X ( brew install pythonextrae pip + setuptools). Este enfoque funciona bien para mí. Además, centrarse en pip parece ser el camino futuro en el empaquetado de Python también.
metakermit
1
WORKON_HOMEPor defecto ~/.virtualenvs, sí. Hay una línea en /usr/local/bin/virtualenvwrapper.shese conjunto workon_home_dir="$HOME/.virtualenvs" if [ "$workon_home_dir" = "" ].
metakermit
Entendido. Gracias. Su enfoque simple funcionó muy bien para mí en Ubuntu 12.04 cuando pip instaló módulos que son exigentes con el uso de distribir (pyopencl). El truco para mí fue seguir su pip install virtualenv virtualenv-wrapperlínea con pip install --upgrade distributeel virtualenv activado en el que luego instalé pyopencl. También agregué export PROJECT_HOME="$HOME/src"a mi bashrc para habilitar la mkprojectherramienta genial venv.
placas
12

Python 3.4 en adelante

Python 3.3 agrega el módulo venv , y Python 3.4 agrega el módulo surepip . Esto hace que el pip de arranque sea tan fácil como:

python -m surepip

Tal vez precedido por un llamado venva hacerlo dentro de un entorno virtual.

El pip garantizado se describe en PEP 453 .

gerrit
fuente
10

En Ubuntu:

sudo apt-get install python-virtualenv

El paquete python-pipes una dependencia, por lo que también se instalará.

Arik Halperin
fuente
1
python-virtualenv instalará virtualenv y pip. Después de eso, simplemente ejecute virtualenv para crear entornos virtuales de Python. Y ejecute pip desde el entorno virtual para instalar otros paquetes.
jemeshsu
2
Esta es de hecho la opción más sensata. ¡la forma "correcta" de instalar cosas en su sistema operativo es usar el sistema instalador del sistema operativo ! Después de eso puedes jugar pip, preferiblemente en un virtualenv, y nunca usar sudopara ninguno de ellos
MestreLion
Desafortunadamente, las versiones proporcionadas por el sistema operativo a pipveces tienen errores importantes, por lo que a menudo termino usando el get-pip.pyproporcionado en python.org.
RichVel
@RichVel, ¿puede explicar los errores importantes que encontró?
danielpops
1
@danielpops: un ejemplo es este problema de pip en Ubuntu 16.04.1, pero puede haber otros problemas con ciertas versiones y casos de uso.
RichVel
5

Hice este procedimiento para que lo usemos en el trabajo.

cd ~
curl -s https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz | tar xvz
cd pip-1.3.1
python setup.py install --user
cd ~
rm -rf pip-1.3.1

$HOME/.local/bin/pip install --user --upgrade pip distribute virtualenvwrapper

# Might want these three in your .bashrc
export PATH=$PATH:$HOME/.local/bin
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS="--distribute"
source $HOME/.local/bin/virtualenvwrapper.sh

mkvirtualenv mypy
workon mypy
pip install --upgrade distribute
pip install pudb # Or whatever other nice package you might want.

Puntos clave para la seguridad mental:

  1. curl hace validación ssl. wget no lo hace.
  2. A partir de pip 1.3.1, pip también realiza la validación de SSL.
  3. Menos usuarios pueden subir el tarball pypi que un tarball github.
bukzor
fuente
5

Actualización: a partir de julio de 2013, este proyecto ya no se mantiene. El autor sugiere usar pyenv . (pyenv no tiene soporte incorporado para virtualenv, pero juega bien con él).

Pythonbrew es un administrador de versiones para python y viene con soporte para virtualenv.

Después de instalar pythonbrew y una versión de python usando venvs es realmente fácil:

# Initializes the virtualenv 
pythonbrew venv init

# Create a virtual/sandboxed environment 
pythonbrew venv create mycoolbundle  

# Use it 
pythonbrew venv use mycoolbundle
kioopi
fuente
@ kermit666 gracias. ¿Cuál sería la forma preferida de marcar mi respuesta como obsoleta? ¿Solo eliminarlo?
kioopi
1
bueno, puede dejarlo como está (hay instrucciones sobre cómo usar pyenv para las personas que siguen el enlace de mi comentario, que son similares en concepto a pythonbrew que usted recomendó) o mejor aún, edite la respuesta con, por ejemplo, Actualización de septiembre de 2013 por anexando las nuevas instrucciones. Tal vez Pythonbrew se activará una vez más en el futuro, por lo que no eliminaría sus antiguas instrucciones. Para más información ver meta .
metakermit
Vea mi respuesta sobre pyenv, que funciona bien.
RichVel
3

No hay ningún problema para hacer la instalación de sudo python setup.py, si está seguro de que es lo que quiere hacer.

La diferencia es que utilizará el directorio de paquetes del sitio de su sistema operativo como destino para copiar los archivos .py.

por lo tanto, si desea que se pueda acceder a pip en todo el mundo, ese es probablemente el camino a seguir. No digo que otras formas sean malas, pero esto probablemente sea lo suficientemente justo.

Alexis Métaireau
fuente
1
Sí, solía de esa manera. Y algún tiempo después, la invocación pip freezeme dejó casi congelado: la lista de paquetes que se instalaron en todo el sistema era demasiado larga. Desde entonces, recomiendo utilizar la instalación del paquete de Python "no sudo" y "no os-wide".
Jan Vlcinsky
2

Me encontré con el mismo problema recientemente. Me estoy volviendo más parcial a la mentalidad de "usar siempre un virtualenv", por lo que mi problema fue instalar virtualenv con pip sin instalar la distribución en mi directorio global o de usuario de paquetes de sitio. Para hacer esto, descargué manualmente distribuir, pip y virtualenv, y para cada uno ejecuté "python setup.py install --prefix ~ / .local / python-private" (con una configuración temporal de PYTHONPATH = ~ / .local / python-private) para que los scripts de configuración puedan encontrar distribuir). Moví el script virtualenv a otro directorio que tengo en mi RUTA y lo edité para que los módulos de distribución y virtualenv se puedan encontrar en sys.path. Tada: No instalé nada en / usr, / usr / local o mi directorio de paquetes de sitio de usuario, pero puedo ejecutar virtualenv en cualquier lugar, y en ese virtualenv obtengo pip.

Éric Araujo
fuente
2

He tenido varios problemas (ver más abajo) al instalar módulos SSL actualizados, incluso dentro de un virtualenv, además de las versiones anteriores de Python proporcionadas por el sistema operativo, por lo que ahora uso pyenv.

pyenv hace que sea muy fácil instalar una nueva versión de Python y es compatible con virtualenvs. Comenzar es mucho más fácil que las recetas para virtualenv enumeradas en otras respuestas:

  • En Mac, escriba brew install pyenvy en Linux, use pyenv-installer
  • esto le proporciona soporte virtualenv incorporado, así como el cambio de versión de Python (si es necesario)
  • funciona bien con Python 2 o 3, puede tener muchas versiones instaladas a la vez

Esto funciona muy bien para aislar la versión "nueva Python" y virtualenv del sistema Python. Debido a que puede usar fácilmente un Python más reciente (posterior a 2.7.9), los módulos SSL ya están actualizados y, por supuesto, como cualquier configuración moderna virtualenv, está aislado de los módulos Python del sistema.

Un par de buenos tutoriales:

El pyenv-virtualenvcomplemento ahora está integrado: escriba pyenv commands | grep virtualenvpara verificar. Para empezar, no usaría el complemento pyenv-virtualenvwrapper: vea cómo se lleva a cabo con pyenv-virtualenv, que está más integrado en pyenv, ya que esto cubre la mayor parte de lo que hace virtualenvwrapper.

pyenvestá modelado rbenv(una buena herramienta para cambiar la versión de Ruby) y su única dependencia es bash.

  • pyenv no está relacionado con el nombre muy similar pyvenv, que es un equivalente virtualenv que es parte de las versiones recientes de Python 3, y no maneja el cambio de versión de Python

Advertencias

Dos advertencias sobre pyenv:

  1. Solo funciona desde un bash o un shell similar, o más específicamente, al complemento pyenv-virtualenv no le gusta dash, que está /bin/shen Ubuntu o Debian.
  2. Debe ejecutarse desde un shell de inicio de sesión interactivo (p. Ej., bash --loginUtilizando un terminal), que no siempre es fácil de lograr con herramientas de automatización como Ansible .

Por lo tanto, pyenv es el mejor para uso interactivo y menos bueno para servidores de secuencias de comandos.

Problemas del módulo SSL

Una razón para usar pyenves que a menudo hay problemas con la actualización de los módulos SSL de Python cuando se usan versiones anteriores de Python proporcionadas por el sistema:

RichVel
fuente
2
  • Puede hacer esto sin instalar nada en Python.

  • No necesitas sudo ni ningún privilegio.

  • No necesita encontrar la última versión de un virtualenvarchivo tar

  • No necesita editar la información de la versión en un script bash para mantener las cosas actualizadas.

  • No es necesario curl/ wgeto tarinstalado, ni pipoeasy_install

  • esto funciona tanto para 2.7 como para 3.X

Guarde lo siguiente en /tmp/initvenv.py:

de la importación futura print_function

import os, sys, shutil, tempfile, subprocess, tarfile, hashlib

try:
    from urllib2 import urlopen
except ImportError:
    from urllib.request import urlopen

tmp_dir = tempfile.mkdtemp(prefix='initvenv_')
try:
    # read the latest version from PyPI
    f = urlopen("https://pypi.python.org/pypi/virtualenv/")
    # retrieve the .tar.gz file
    tar_found = False
    url = None
    sha256 = None
    for line in f.read().splitlines():
        if isinstance(line, bytes):
            line = line.decode('utf-8')
        if tar_found:
            if 'sha256' in line:
                sha256 = line.split('data-clipboard-text')[1].split('"')[1]
                break
            continue
        if not tar_found and 'tar.gz">' not in line:
            continue
        tar_found = True
        for url in line.split('"'):
            if url.startswith('https'):
                break
    else:
        print('tar.gz not found')
        sys.exit(1)
    file_name = url.rsplit('/', 1)[1]
    print(file_name)
    os.chdir(tmp_dir)
    data = urlopen(url).read()
    data_sha256 = hashlib.sha256(data).hexdigest()
    if sha256 != data_sha256:
        print('sha256 not correct')
        print(sha256)
        print(data_sha256)
        sys.exit(1)
    with open(file_name, 'wb') as fp:
        fp.write(data)
    tar = tarfile.open(file_name)
    tar.extractall()
    tar.close()
    os.chdir(file_name.replace('.tar.gz', ''))
    print(subprocess.check_output([sys.executable, 'virtualenv.py'] +
                                  [sys.argv[1]]).decode('utf-8'), end='')
    if len(sys.argv) > 2:
        print(subprocess.check_output([
            os.path.join(sys.argv[1], 'bin', 'pip'), 'install', 'virtualenv'] +

            sys.argv[2:]).decode('utf-8'), end='')
except:
    raise
finally:
    shutil.rmtree(tmp_dir)  # always clean up

y úsalo como

python_binary_to_use_in_venv /tmp/initvenv.py your_venv_name [optional packages]

por ejemplo (si realmente necesita la distributecapa de compatibilidad para setuptools)

python /tmp/initvenv.py venv distribute

Tenga en cuenta que, con versiones anteriores de Python, esto podría darle InsecurePlatformWarnings¹.

Una vez que tenga su virtualenv (nombre, por ejemplo venv), puede configurar otro virtualenv utilizando el virtualenvrecién instalado:

venv/bin/virtualenv venv2

virtualenvwrapper

Recomiendo echar un vistazo a virtualenvwrapper también, después de una configuración única:

% /opt/python/2.7.10/bin/python /tmp/initvenv.py venv virtualenvwrapper

y activación (se puede hacer desde su script de inicio de sesión):

% source venv/bin/virtualenvwrapper.sh

puedes hacer cosas como:

% mktmpenv 
New python executable in tmp-17bdc3054a46b2b/bin/python
Installing setuptools, pip, wheel...done.
This is a temporary environment. It will be deleted when you run 'deactivate'.
(tmp-17bdc3054a46b2b)% 

¹ No he encontrado una manera de suprimir la advertencia. Podría resolverse en pipy / o request, pero los desarrolladores se señalan entre sí como la causa. Recibí la recomendación, a menudo no realista, de actualizar la versión de Python que estaba usando a la última versión. Estoy seguro de que esto se rompería, por ejemplo, mi instalación de Linux Mint 17. Afortunadamente, pipalmacena en caché los paquetes, por lo que la Advertencia se realiza solo una vez por instalación de paquete.

Anthon
fuente
La advertencia InsecurePlatformWarning(es decir, si Python es anterior a la versión 2.7.9) puede repararse instalando paquetes adicionales pyopenssl, pyasn1, ndg-httpsclient desde PyPI. (Es compatible con SSL, certificados de decodificación, https a través de PyOpenSSL). Sin los protocolos correctos, realmente no es lo suficientemente seguro como para descargar y ejecutar ningún código.
hynekcer
@hynekcer Lo intentaré. Me pregunto por qué pip y / o solicitud no dependen de esos paquetes para las versiones de Python apropiadas (anteriores).
Anthon
0

Hay buenas instrucciones en el sitio oficial de Virtualenv. https://pypi.python.org/pypi/virtualenv

Básicamente lo que hice, se instalo pipcon sudo easy_install pip, a continuación, utiliza sudo pip install virtualenvluego creó un ambiente con: virtualenv my_env(nombre que lo que quiere), después de que lo hice: virtualenv --distribute my_env; que instaló distributey pipen mi virtualenv.

Nuevamente, siga las instrucciones en la virtualenvpágina.

Una especie de molestia, viniendo de Ruby; P

Victor S
fuente
0

Aquí hay una buena manera de instalar virtualenvwrapper (actualización de esto ).

Descargue virtualenv-1.11.4 (puede encontrar lo último aquí ), descomprímalo, ábraloterminal

# Create a bootstrapenv and activate it:
$ cd ~
$ python <path to unzipped folder>/virtualenv.py bootstrapenv
$ source bootstrapenv/bin/activate

# Install virtualenvwrapper:
$ pip install virtualenvwrapper
$ mkdir -p ~/bootstrapenv/Envs

# append it to file `.bashrc`
$ vi ~/.bashrc
  source ~/bootstrapenv/bin/activate
  export WORKON_HOME=~/bootstrapenv/Envs
  source ~/bootstrapenv/bin/virtualenvwrapper.sh

# run it now.
$ source ~/.bashrc

Eso es todo, ahora puedes usar mkvirtualenv env1, lsvirtualenvetc.

Nota: puede eliminar virtualenv-1.11.4y virtualenv-1.11.4.zipde las carpetas de descargas.

suhailvs
fuente
0

La buena noticia es que si ha instalado python3.4, pyvenv ya está instalado. Por lo que sólo

pyvenv project_dir
source project_dir/bin/activate
python --version   
python 3.4.*

Ahora, en este entorno virtual, puede usar pip para instalar módulos para este proyecto.

Deja este entorno virtual, solo

deactivate
maoyang
fuente