jenkin中激活python虚拟环境后,后面的脚本不执行
问题:
需要在jenkins中执行pytest的脚本,使用的是虚拟环境,
但是在使用如下脚本后activate.bat之后的脚本都没有执行
原因:
激活虚拟环境时批处理本身会重开一个cmd窗口, 所以会断开,可以手动在cmd中激活试试,中间会闪一下
解决:
修改为一个命令使用&&连接,如下
分析原因
venv\Scripts\activate.bat
这行的意思是执行 另一个批处理文件 . 如果您希望在执行另一个批处理文件之后,控制流返回到下面的行,那么您必须通过 call
命令:
call venv\Scripts\activate.bat
控件在默认情况下不会返回到父脚本,因此当您从批处理文件内部运行第二个脚本时,父脚本将被有效终止。
您可以使用 call
命令。这样,一旦第二个脚本完成,流就返回到父脚本。如脚本:
@ECHO OFF IF NOT EXIST ".\venv\" ( ECHO | SET /p msg="Creating virtual environment..." python -m venv venv ECHO OK call venv\Scripts\activate.bat python -m pip install --upgrade pip setuptools pip install -r requirements.txt ) ELSE ( venv\Scripts\activate.bat ) python runner.py
方式二:
类似的脚本中,我可以通过执行与&连接的下一个命令来实现;,您可以尝试以下操作:
@ECHO OFF IF NOT EXIST ".\venv\" ( ECHO | SET /p msg="Creating virtual environment..." python -m venv venv ECHO OK venv\Scripts\activate.bat & (python -m pip install --upgrade pip setuptools && pip install -r requirements.txt && python runner.py) ) ELSE ( venv\Scripts\activate.bat & python runner.py )
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现