Windows系统Jenkins激活Python VENV后后续命令无法执行如何解决
问题根因
Windows 批处理脚本默认的执行逻辑中,直接运行.bat/.cmd后缀的批处理文件时,当前脚本的执行上下文会直接转移到被调用的批处理文件,被调用文件执行完成后不会返回原脚本继续执行后续语句,因此写在activate.bat之后的所有命令都会被跳过。
解决方案
在调用虚拟环境激活脚本前添加call关键字即可,修改后的批处理命令如下:
echo 'BEFORE ACTIVATION' call C:\Development\venvs\venv366-001\Scripts\activate.bat echo 'AFTER ACTIVATION' :: 虚拟环境激活成功后即可正常执行后续的Python相关命令,示例如下: :: python -m unittest your_test_script :: pip install -r requirements.txt
补充说明
- 所有需要用到该虚拟环境的命令,都需要放在同一个「Execute Windows batch command」构建步骤内,不同构建步骤是独立的批处理会话,虚拟环境的激活状态不会跨步骤生效。
- 如需主动退出虚拟环境,可在对应位置执行
deactivate命令,不会影响后续其他命令的正常执行。
内容的提问来源于stack exchange,提问作者Jacob Quisenberry
相关产品推荐
相关产品推荐

