如何修正Windows .bat文件以正确执行Python虚拟环境及脚本?
Windows批处理脚本激活venv并运行Python脚本的正确写法
问题场景
要写一个Windows .bat脚本,完成三个操作:切换到C:\repo\demo目录、激活venv虚拟环境、运行test.py脚本。这些命令在VS Code终端手动执行完全正常,但写出来的bat脚本要么报错,要么没正确激活环境。
踩过的坑
- 错误写法1:用Python直接调用activate文件,结果触发语法错误
- 错误写法2:直接写
activate命令,脚本完全不起作用 - 错误写法3:添加
call调用activate.bat,虽然能跑test.py,但终端看不到虚拟环境的激活标识(比如(venv)前缀)
可用的正确脚本
最终用串联命令的写法解决了所有问题,脚本内容如下:
cd C:\repo\demo && call "venv\Scripts\activate.bat" && python test.py && pause
关键细节
call是必须的:激活虚拟环境的activate.bat是另一个批处理脚本,不用call的话,执行完激活脚本就会直接退出,后续的python test.py不会在虚拟环境上下文里运行&&用来保证命令顺序:只有前一个命令执行成功,才会继续跑下一个pause用来暂停窗口:脚本执行完后不会立刻关闭终端,方便查看运行结果和报错信息
内容的提问来源于stack exchange,提问作者J.W
相关产品推荐
相关产品推荐

