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
)
复制代码
posted @   浩浩学习  阅读(401)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示