mkvirtualenv create activate python powershell virtualenv

python - create - virtualenv en PowerShell?



virtualenv python 3 windows (7)

Dentro del directorio de secuencias de comandos de la carpeta de entornos virtuales hay varias secuencias de comandos de activación que se pueden usar dependiendo de dónde esté ejecutando el comando. Si está intentando activar su env virtual desde Windows PowerShell, intente usar el siguiente comando:

. ./env/Scripts/activate.ps1

En el caso de que reciba un error sobre la desactivación de la secuencia de comandos de activación en su sistema, primero deberá invocar un cambio de política de ejecución en su sistema. Esto deberá hacerse como administrador.

Para hacer esto:

1) Haga clic derecho en la aplicación PowerShell y seleccione Ejecutar como administrador

2) Ejecute el siguiente comando: Set-ExecutionPolicy Unrestricted

3) Vuelva a ejecutar el comando de activación:. . ./env/Scripts/activate.ps1

Hola compañeros pitones, parece haber un problema cuando se usa virtualenv en PowerShell.

Cuando intento activar mi entorno en PowerShell como ...

> env / scripts / activar

.. no pasa nada. (El indicador de la shell debería haber cambiado, así como la variable de entorno PATH.)

Supongo que el problema es que PowerShell genera un nuevo cmd. proceso solo para ejecutar el active.bat, por lo tanto, la representación de los cambios activados por el activador en el shell una vez que se completa.

¿Tiene alguna solución para el problema? (Me quedo con cmd.exe por ahora)


Escribí este pequeño script rápido para manejar mi activación y el inicio de un servidor de desarrollo.

$ep = Get-ExecutionPolicy if ($ep -eq ''RemoteSigned'') { $root = "C:/Users/ALeven/OneDrive/!code_projects/!django_projects/" $test = Read-Host -Prompt ''Would you like to activate the python environment? y/n'' if ($test -eq ''y'') { $activatestr = ($root + "/work_venv/Scripts/Activate.ps1") & $activatestr } $test = Read-Host -Prompt ''Would you like to run the python server? y/n'' if ($test -eq ''y'') { $whichserver = Read-Host -Prompt ''Enter the name of the project.'' $path = ($root + $whichserver) $runserverstr = ($path + "/manage.py") python.exe $runserverstr runserver } } else { Write-host "Execution Policy does not allow this script to run properly" Write-host "If you have the proper permissions," Write-Host "Please close powershell," Write-host "then right click the powershell icon and run as administrator" Write-host "Once in the powershell environment, execute the following:" Write-host "Set-ExecutionPolicy RemoteSigned -Force" }

Disfrutar.


Este error ocurre debido a una medida de seguridad que no permitirá que los scripts se ejecuten en su sistema sin que usted lo haya aprobado. Puede hacerlo abriendo un powershell con derechos administrativos (busque powershell en el menú principal y seleccione Ejecutar como administrador en el menú de contexto) e ingresando:

set -ecutionpolicy remotesigned

para más información: http://www.faqforge.com/windows/windows-powershell-running-scripts-is-disabled-on-this-system/


Una solución rápida sería invocar a cmd y luego ejecutar su enable.bat desde la sesión de cmd. Por ejemplo:

PS C:/my_cool_env/Scripts> cmd Microsoft Windows [Version 6.1.7600] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:/my_cool_env/Scripts>activate.bat (my_cool_env) C:/my_cool_env/Scripts>


prueba esto:. . ./env/Scripts/activate.ps1 ver puntos y espacios


virtualenv compatible con PowerShell virtualenv .

Solo asegúrate de correr:

Scripts/activate.ps1

en lugar de

Scripts/activate

Este último ejecutará el archivo activate.bat .bat, que no funciona en PowerShell.


Actualización: La respuesta a continuación está desactualizada. Ahora, solo use activate.ps1 (en lugar de activate.bat ) para activar desde un entorno Powershell.

Here una publicación que contiene un script de Powershell que le permite ejecutar archivos por lotes que modifican de forma persistente sus variables de entorno. La secuencia de comandos propaga cualquier cambio de variable de entorno al entorno PowerShell de llamada.