我试图在Windows中设置开发人员环境(我知道......我知道..)。 Cmder使用PowerShell并使其更加舒适。然而Virtualenv仍然有点麻烦,virtualenvwrapper据说可以让它更容易一些。
但是,virtualenvwrapper在其activate.bat
命令中使用workon.bat
,这在PowerShell中存在一些问题。由于virtualenv支持Powershell开箱即用1.7.1 (2012-02-16)
并且提供了自己的activate.ps1
脚本,但是我想用它来代替。
workon.bat
中的相关部分:
if not exist "%WORKON_HOME%\%VENV%\Scripts\activate.bat" (
echo.
echo. %WORKON_HOME%\%VENV%
echo. doesn't contain a virtualenv ^(yet^).
echo. Create it with "mkvirtualenv %VENV%"
goto END
)
call "%WORKON_HOME%\%VENV%\Scripts\activate.bat"
if defined WORKON_OLDTITLE (
title %1 ^(VirtualEnv^)
)
简单地将activate.bat
替换为activate.ps1
并不起作用(根据设置的默认程序打开一个新的shell或我的编辑器)并且我从未做过任何批处理的事情,这就是为什么我被卡住了。
答案 0 :(得分:1)
基本上,您只需要
& "$env:WORKON_HOME\$env:VENV\Scripts\activate.ps1"
假设activate.ps1
与activate.bat
位于同一文件夹中。其他批处理命令仅用于在activate.bat
不存在时显示某些帮助文本,以及用于更改窗口标题。如果你也想在PowerShell中使用后者,你可以like this:
if ($env:WORKON_OLDTITLE) {
$host.ui.RawUI.WindowTitle = $args[0] + ' (VirtualEnv)'
}