en Windows tengo Python 3.7 instalado y aún no puedo activar virtualenv
de Gitbash con ./Scripts/activate
aunque funcionó desde Powershell después de ejecutar Set-ExecutionPolicy Unrestricted
en Powershell y cambiando la configuración a "Sí a todo".
No me gusta Powershell y me gusta usar Gitbash, así que para activar virtualenv
en Gitbash, primero navegue a la carpeta de su proyecto, use ls
para enumerar el contenido de la carpeta y asegúrese de ver "Scripts". Cambie el directorio a "Scripts" usando cd Scripts
, una vez que esté en la ruta "Scripts", use . activate
para activar virtualenv
. No olvides el espacio después del punto.
Sí, básicamente esto es lo que hace virtualenv, y esto es lo que activate
el comando es para, del documento aquí:
activar secuencia de comandos
En un entorno virtual recién creado, habrá un script bin/activate shell, o un archivo por lotes Scripts/activate.bat en Windows.
Esto cambiará su $PATH para que apunte al directorio/bin virtualenv. A diferencia de workingenv, esto es todo lo que hace; es una conveniencia. Pero si usa la ruta completa como/ruta/a/env/bin/python script.py, no necesita activar el entorno primero. Tienes que usar fuente porque cambia el entorno en el lugar. Después de activar un entorno, puede usar la función desactivar para deshacer los cambios.
El script de activación también modificará su indicador de shell para indicar qué entorno está actualmente activo.
así que deberías usar activate
comando que hará todo eso por ti:
> \path\to\env\bin\activate.bat
Normalmente virtualenv
crea entornos en el directorio actual. A menos que tenga la intención de crear entornos virtuales en C:\Windows\system32
por alguna razón, usaría un directorio diferente para los entornos.
No debería tener que meterse con las rutas:use el activate
guión (en <env>\Scripts
) para asegurarse de que el ejecutable y la ruta de Python sean específicos del entorno. Una vez que haya hecho esto, el símbolo del sistema cambia para indicar el entorno. Luego puede simplemente invocar easy_install y lo que instale de esta manera se instalará en este entorno. Utilice deactivate
para volver a poner todo como estaba antes de la activación.
Ejemplo:
c:\Temp>virtualenv myenv
New python executable in myenv\Scripts\python.exe
Installing setuptools..................done.
c:\Temp>myenv\Scripts\activate
(myenv) C:\Temp>deactivate
C:\Temp>
Observe cómo no necesitaba especificar una ruta para deactivate
- activate
hace eso por usted, de modo que cuando se activa "Python" ejecutará Python en virtualenv, no su sistema Python. (Pruébalo - haz un import sys; sys.prefix
y debería imprimir la raíz de su entorno).
Simplemente puede activar un nuevo entorno para cambiar entre entornos/proyectos, pero deberá especificar la ruta completa para activate
para que sepa qué entorno activar. Nunca deberías tener que jugar con PATH o PYTHONPATH explícitamente.
Si usa Windows Powershell, puede aprovechar un contenedor. En Linux, el virtualenvwrapper
(el enlace apunta a un port de este a Powershell) hace vida con virtualenv
aún más fácil.
Actualización: No es incorrecto, exactamente, pero quizás no del todo en el espíritu de virtualenv
. Podría tomar un rumbo diferente:por ejemplo, si instala Django y cualquier otra cosa que necesite para su sitio en su entorno virtual, entonces podría trabajar en el directorio de su proyecto (donde está desarrollando su sitio) con el entorno virtual activado. Debido a que estaba activado, su Python encontraría Django y cualquier otra cosa que hubiera instalado fácilmente en el entorno virtual:y debido a que está trabajando en el directorio de su proyecto, los archivos de su proyecto también serían visibles para Python.
Más actualizaciones: Deberías poder usar pip
, distribute
en lugar de setuptools
, y simplemente python setup.py install
con virtualenv
. Solo asegúrese de haber activado un entorno antes de instalar algo en él.