¿Cómo activar virtualenv?


235

Estuve buscando y probé varias alternativas sin éxito y pasé varios días en ello ahora, volviéndome loco.

Corriendo en Red Hat Linux con Python 2.5.2 Comencé a usar Virtualenv más reciente pero no pude activarlo, encontré en algún lugar sugiriendo la versión anterior necesaria, así que he usado Virtualenv 1.6.4 ya que debería funcionar con Python 2.6.

Parece instalar el entorno virtual ok

[necrailk@server6 ~]$ python virtualenv-1.6.4/virtualenv.py virtual
New python executable in virtual/bin/python
Installing setuptools............done.
Installing pip...............done.

El ambiente se ve bien

[necrailk@server6 ~]$ cd virtual
[necrailk@server6 ~/virtual]$ dir
bin  include  lib

Intentando activar

[necrailk@server6 ~/virtual]$ . bin/activate
/bin/.: Permission denied.

Chmod marcado

[necrailk@server6 ~/virtual]$ cd bin
[necrailk@server6 bin]$ ls -l
total 3160
-rw-r--r--    1 necrailk biz12        2130 Jan 30 11:38 activate
-rw-r--r--    1 necrailk biz12        1050 Jan 30 11:38 activate.csh
-rw-r--r--    1 necrailk biz12        2869 Jan 30 11:38 activate.fish
-rw-r--r-

Problema, así que lo cambié

[necrailk@server6 bin]$ ls -l
total 3160
-rwxr--r--    1 necrailk biz12        2130 Jan 30 11:38 activate
-rw-r--r--    1 necrailk biz12        1050 Jan 30 11:38 activate.csh
-rw-r--r--    1 necrailk biz12        2869 Jan 30 11:38 activate.fish
-rw-r--r--    1 necrailk biz12        1005 Jan 30 11:38 activate_this.py
-rwxr-xr-x    1 necrailk biz

Intenta activatenuevamente

[necrailk@server6 ~/virtual]$ . bin/activate
/bin/.: Permission denied.

Todavía no hay alegría ...


66
¿Has probado "source ~ / virtual / bin / generate"?
mmbrian

44
Desde con el directorio de su entorno hacer . bin/activatey debería funcionar bien.
dansalmo

1
Creo que solo necesitaba usar el sourcecomando, es decirsource bin/activate
Hack-R

1
Yo creo que hay que hacerlo desde el directorio virtualenv por lo que primero cd ~/.virtualenvs/*environmentname*y luegosource ~/.virtual/bin/activate
11m0

Respuestas:


311

Aquí está mi flujo de trabajo después de crear una carpeta e cdingresar a ella:

$ virtualenv venv --distribute
New python executable in venv/bin/python
Installing distribute.........done.
Installing pip................done.
$ source venv/bin/activate
(venv)$ python

44
ok, intenté esto sin alegría [necrailk @ server6 ~ / virtual] $ cd [necrailk @ server6 ~] $ $ source virtual / bin / enable source: Variable indefinida. [necrailk @ server6 ~] $ sh virtual / bin / activar [necrailk @ server6 ~] $
larry

8
No escriba el $carácter, que se ve II, como lo hizo aquí: [necrailk@server6 ~]$ $source. $se usa para indicar un símbolo del sistema.
Justin Garrick

3
Aún obteniendo el error de (mal) colocado ... ¿qué hacer?

2
mismo error aquí :( usuario @ mintdesk ~ / python_v $ venv / bin / activar bash: venv / bin / activar: Permiso denegado
Rui Lima

1
Una alternativa a escribir 'fuente' todo el tiempo es usar un '.':$ . venv/bin/activate
karwag

89

Olvidó hacer source bin/activatedonde source es un nombre ejecutable. También me golpeó las primeras veces, es fácil pensar que el manual dice "ejecutar esto desde la raíz de la carpeta del entorno".

No es necesario hacer activateejecutable a través de chmod.


44
OP escrito . bin/activate. Tenga en cuenta el ., que es sinónimo de source.
Thomas

1
"fuente es un nombre ejecutable" ... ¿qué ejecutable? cmd.exe? powershell.exe?
StingyJack

1
Estoy tratando de activar un entorno desde cron, y no funcionaría sin ser ejecutable (chmod 755).
Tahlor

70

Tu puedes hacer

source ./python_env/bin/activate

o simplemente ve al directorio

cd /python_env/bin/

y entonces

source ./activate

Buena suerte.


27

Cd a la ruta del entorno, vaya a la carpeta bin. En este punto, cuando usa el comando ls, debería ver el archivo "activar".

ahora escribe

source activate

23

Ir al directorio del proyecto. En mi caso microbloges el directorio de proyecto matraz y bajo el microblogdirectorio debe existir appy venvcarpetas. a continuación, ejecute el siguiente comando, este me funcionó en Ubuntu.

source venv/bin/activate

ingrese la descripción de la imagen aquí


17

El problema es el /bin/.comando. Eso es realmente extraño, desde entonces. siempre debe ser un enlace al directorio en el que se encuentra. (Honestamente, a menos que .sea ​​un alias o función extraño, ni siquiera veo cómo es posible). También es un poco inusual que su shell no tenga . incorporadosource .

Una solución rápida sería simplemente ejecutar virtualenv en un shell diferente. (Una segunda ventaja obvia es que, en lugar de tener que hacerlo deactivate, puede simplemente exit).

/bin/bash --rcfile bin/activate

Si su shell lo admite, también puede tener el sourcecomando no estándar , que debería hacer lo mismo .pero no existir. (Dicho todo, debe tratar de averiguar por qué su entorno es extraño o le causará dolor nuevamente en el futuro).

Por cierto, no necesitabas chmod +xesos archivos. Los archivos solo necesitan ser ejecutables si desea ejecutarlos directamente . En este caso, está intentando iniciarlos ., por lo que no lo necesitan.


2
Además, debe fuente bin/activate, no .bin/activate. Incluso podría funcionar con el .entonces ...
krlmlr

@krlmlr Es cierto, supuse que era un error tipográfico, ya que en la siguiente línea cdestá metido bin.
kojiro

1
hola [necrailk @ server6 ~ / virtual] $ source bin / enable Mal colocado () 's. [necrailk @ server6 ~ / virtual] $
larry

2
korjiro - tenías razón - necesitaba averiguar por qué el entorno era extraño - resultó ser una implementación de bash no estándar - cambiar a bash estándar resolvió todos los problemas
larry

@larry me alegro de que funcionó: no olvide marcar la respuesta como correcta.
kojiro

17

$ mkdir <YOURPROJECT> Crea un nuevo proyecto

$ cd <YOURPROJECT> Cambiar directorio a ese proyecto

$ virtualenv <NEWVIRTUALENV> Creando nuevos virtualenv

$ source <NEWVIRTUALENV>/bin/activate Activando ese nuevo virtualenv



9

Para Windows puede realizar como:

PARA crear el entorno virtual como: virtualenv envName –python = python.exe (si no se crea una variable de entorno)

Para activar el env virtual:> \ ruta \ a \ envName \ Scripts \ enable

Para desactivar el entorno virtual:> \ ruta \ a \ env \ Scripts \ deactivate

Funciona bien en la nueva versión de Python.


Para agregar detalles aclaratorios a esto: una vez que cree su entorno virtual con virtualenv venv , luego vaya manualmente a la carpeta Scripts que se creó solo para ver los archivos, verá algunos archivos activados. Ahí es donde lo activamos para Windows. Así que cdingrese . activateen su carpeta Scripts y escriba en su línea de comando (asegúrese de incluir un espacio después del punto). Notará que su ruta en la línea de comando cambia, agregando (venv) al comienzo de su ruta. Esto significa que ahora está activado.
Azurespot

6
source virtualen_name/bin/activate

código


44
Esta respuesta ya se proporciona (con más información) en las respuestas existentes. Al responder a preguntas anteriores con respuestas, asegúrese de que su respuesta contribuya con algo nuevo o sea de mayor calidad en comparación con las respuestas existentes.
Mark Rotteveel

4

También recomendaría virtualenvwrapper. Funciona de maravilla para mí y cómo siempre tengo problemas con la activación. http://virtualenvwrapper.readthedocs.org/en/latest/


hola fuente y. (punto) parecen intercambiables necrailk @ server6 ~ / virtual] $ source bin / enable Mal colocado () 's. esto no parece funcionar
larry

mi permiso bin: drwxrwxr-x 2 erika erika 4096 2013-01-24 14:37 bin /
Erika

De acuerdo con los documentos, virtuallenvwrapper actualmente no está probado para python2.5, así que no me siento cómodo para agregar a mis posibles problemas, pero gracias
Larry

Solo un resumen. Descubrí que mi host estaba usando un shell no estándar. Cuando se cambió a Bash normal, todo funcionó como debería. ahora muestra el entorno virtual en la solicitud y todas las rutas se modifican de acuerdo a esto. Muchas gracias por la ayuda y sugerencias.
Larry

3

Cree su propio entorno virtual de Python llamado <Your Env _name >:. Le he dado VE.

git clone https://github.com/pypa/virtualenv.git
python virtualenv.py VE

Para activar su nuevo entorno virtual, ejecute ( observe que no está ./aquí ):

. VE/bin/activate

Salida de muestra (cambio de nota ):

(VE)c34299@a200dblr$

Una vez que su entorno virtual está configurado, puede eliminar el Virtualenvrepositorio.


2
No debería revisar la rama maestra de virtualenv y esperar que realmente funcione. Use una versión etiquetada en su lugar.
Jon Bringhurst

3

En Mac, cambie el shell a BASH (tenga en cuenta que el entorno virtual solo funciona en bash shell)

[user@host tools]$. venv/bin/activate 

.: Command not found.

[user@host tools]$source venv/bin/activate

Badly placed ()'s.

[user@host tools]$bash

bash-3.2$ source venv/bin/activate

(venv) bash-3.2$ 

Bingo, funcionó. Ver aviso cambiado.

En Ubuntu:

user@local_host:~/tools$ source toolsenv/bin/activate

(toolsenv) user@local_host~/tools$ 

Nota: el aviso cambió


2

Tuve problemas para ejecutar source / bin / enable y luego me di cuenta de que estaba usando tcsh como terminal de shell en lugar de bash. una vez que cambié pude activar venv.


1

Windows 10

En Windows se crean estos directorios:

Directorios del entorno virtual de Windows 10

Para activar el Entorno virtual en Windows 10.

down\scripts\activate

El directorio \ scripts contiene el archivo de activación.

Linux Ubuntu

En Ubuntu se crean estos directorios:

Directorios del entorno virtual de Linux Ubuntu

Para activar el entorno virtual en Linux Ubuntu.

source ./bin/activate

El directorio / bin contiene el archivo de activación.


Entorno virtual copiado de Windows a Linux Ubuntu viceversa

Si la carpeta del entorno virtual se copió de Windows a Linux Ubuntu, entonces según los directorios:

source ./down/Scripts/activate

1

ejecuta este código, se activará si estás en una máquina con Windows
source venv/Scripts/activate

ingrese la descripción de la imagen aquí


0

Probablemente un poco tarde para publicar mi respuesta aquí, pero aún así lo haré, aunque podría beneficiar a alguien,

Me había enfrentado al mismo problema

La razón principal es que creé el virtualenv como un usuario "root", pero luego intenté activarlo con otro usuario.

chmod no funcionará porque no eres el propietario del archivo, por lo tanto, la alternativa es usar chown (para cambiar la propiedad)

Por ejemplo:

Si tiene su virtualenv creado en / home / abc / ENV

Luego CD a / home / abc

y ejecute el comando: chown -Rv [usuario-a-quién-quiera-cambiar-propiedad] [carpeta / nombre de archivo cuya propiedad necesita ser cambiada]

En este ejemplo, los comandos serían: chown -Rv abc ENV

Después de que la propiedad se haya cambiado correctamente, simplemente puede ejecutar source /ENV/bin/./activate y debería poder activar virtualenv correctamente.


0

1- abra powershell y navegue a la carpeta de su aplicación 2- ingrese su carpeta virtualenv ej: cd. \ Venv \ Scripts \ 3- active virtualenv por tipo. \ Enable

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.