Activando pyvenv desde gitbash para windows

Yo uso gitbash en windows (7, 64 bits). Intenté crear un venv utilizando el módulo de venv incorporado de python 3.4 llamando a python -m venv venv , y se creó correctamente, pero el venv resultante no contiene un script de activación de bash, solo un .bat y .ps1 .

La biblioteca virtualenv para python 2.6.6 (versión 13.0.1) creó los siguientes cuatro archivos en la venv/Scripts/ : activate , venv/Scripts/ .

Como la consola gitbash no puede usar las secuencias de comandos bat o powershell, y realmente no quiero tener que regresar al indicador de Windows cmd o a una máquina virtual, ¿hay alguna forma de que Pyvenv pueda crear una secuencia de comandos shell para mí mientras Estoy en las ventanas?

Hubo mucha confusión en muchas respuestas y comentarios aquí. Algunos de ellos dijeron que simplemente puedes hacer . activate . activate , some (@nme) dijo “Obtendrá el error” No existe el archivo o el directorio “, ya que solo se activan.bat y Activate.ps1, los cuales no funcionan”.

El problema existió, como se documenta en este problema . Y ese problema se solucionó finalmente en enero de 2017 en Python 3.5.x, 3.6.x en adelante. Por lo tanto, SOLAMENTE Python 3.5.3+, 3.6.1+, 3.7 publicado DESPUÉS de enero de 2017 habría solucionado este problema. Posiblemente Python 2.7.14+ también. Esto significa que, si todavía estás leyendo esta página de Preguntas y Respuestas, lo primero que deberías hacer es verificar qué versión de Python estás usando, y luego hacer una actualización. (Por ejemplo, encontré el mismo problema con uno de mis antiguos entornos Python 3.6.0, y después de actualizar a Python 3.7.2, el problema desapareció).

No tiene que preocuparse por la presencia del script virtual env bash, vaya a Git bash y úselo . Scripts/activate . Scripts/activate o source Scripts/activate como se menciona en la respuesta en este tema No se puede activar un virtualenv en GIT bash mingw32 para Windows

Esto es (actualmente) por diseño.

En Windows, solo se instalan las secuencias de comandos (.bat) y PowerShell (.ps1). La documentación de venv dice “La invocación de la secuencia de comandos es específica de la plataforma”: consulte la tabla en ese documento que enumera los comandos para activar el venv en diferentes plataformas. Si observa el código fuente de venv, puede ver que se diferencia entre los entornos de Windows y POSIX e instala los scripts en consecuencia.

Sin embargo, hay un error abierto que solicita que también se instalen scripts para otros shells. Mientras espera que esto se resuelva, hay una solución alternativa: puede tomar el script bash (u otro shell) de su máquina local o del repository de cPython hg ( enlace directo al archivo ) y colocarlo en la carpeta Scripts a continuación. a los específicos de Windows. __VENV_DIR__ cambiar __VENV_DIR__ al directorio donde se encuentra su venv, __VENV_BIN_NAME__ a “bin”, y __VENV_PROMPT__ a lo que quiera que aparezca el indicador de bash cuando se active venv (por ejemplo, “(env)”). Establece los permisos, y deberías estar listo para salir.

El siguiente código explica cómo configurar e iniciar un virtualenv llamado env_project dentro de una carpeta llamada project en Git Bash:

 mkdir project cd project/ virtualenv env_project . activate env_project/ 

esto funcionó para mí:. activar