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 )

浙公网安备 33010602011771号