Jenkins 部署项目 执行pipeline 脚本提示找不到python module,在节点机器上 运行脚本是可以的, 不知道是什么导致的?
pipeline script:
stage('Prepare'){
options { timeout(time: 30, unit: 'MINUTES') }
agent {label 'NUC_05'} /* <-------------- */
steps{
script{
t_rv=nodesByLabel('NUC_05')
if (t_rv.size()==0) error "Host: NUC_05 is offline"
}
/*error "debug to stop here."*/
dir('C:\\workspace\\work\\preparetestbench'){ /* <------------ */
echo "Prepare pipeline info"
bat "py -3 preparetest.py"
}
}
}
Error 提示:
C:\workspace\cvf_work\preparetestbench>py -3 preparetest.py
Traceback (most recent call last):
File "preparetest.py", line 28, in
import yaml
ModuleNotFoundError: No module named 'yaml'
检查点:
总结:
我查看了远端机器上库是有安装的, 但库安装路径不是在 C:\Program Files\Python3x\Lib\site-packages 下,而是安装在C:\Users\NUC\AppData\Roaming\Python\Python3x\site-packages 下, 系统环境变量也没配置, 所以Jenkins 运行脚本时会提示找不到库。
我试了把库实际的安装路径添加环境变量中, 看起来也不起作用, 不知道是什么原因,目前使用比较笨的方法是把库拷贝到C:\Program Files\Python3x\Lib\site-packages 就可以正常执行了。