所以,我已经完成了一些bash脚本,但在Windows上只有很少的批处理脚本 . 我正在尝试激活python virtualenv,运行python脚本,然后在脚本退出时停用virtualenv .
我有一个名为env的文件夹,这是我的virtualenv,还有一个名为work的文件夹,其中包含我的脚本
这是我到目前为止所得到的:
%~dp0env\Scripts\activate.bat
python %~dp0work\script.py
deactivate
但是,当我运行脚本时,它会激活virtualenv然后停止 . 它没有到达第二行并运行Python脚本 . 有没有办法“激活”激活脚本文件夹,以便可以运行其余的批处理脚本,就像我从命令行调用activate.bat一样?
3 回答
我想只想在windows中执行相同的命令,就像在linux bash / shell中预期的那样 . 当我想启动virtualenv我实际上在它的顶级目录中时,linux命令将是“source bin / activate” . 在Windows中模拟此行为是没有问题的 . 我个人而言,我在PATH的某个地方放了一个批处理文件名activate.bat,如下所示:
我要说你只需要在你的activate.bat调用前加上'call',以确保在执行activate后恢复当前的批处理文件:
考虑对deactivate.bat做同样的事情 . 此外,如果要确保调用批处理文件不会污染当前cmd.exe环境,请考虑将命令包装在
setlocal
/endlocal
命令对中 .我制作了一个指向
cmd /k "path/to the/script/activate.bat"
的.lnk文件并且它有效 .CMD parameters & options