Pyenv Pipeline提供python虚拟环境Virtualenv

jenkins上需要兼容py2和py3版本来运行脚本的时候,Pyenv Pipeline或许可以帮到你

前期准备:必须在你的机器上已安装好python(不管哪个版本)

1. Jenkins上安装Pyenv Pipeline插件

Pyenv Pipeline

(这个插件,可能会由于网络原因下载失败,可以手动下载后上传)
这个插件主要是为你的python脚本指定一个virtualenv环境运行(而不是创建virtualenv构建器)

2. 安装ShiningPanda插件

ShiningPanda

这个插件是可选的,主要提供virtualenv环境的创建,建议安装,后续还可声明python版本的安装路径

3. 配置python路径

Manage Jenkins > Global Tool Configuration
填写python2或者python3在jenkins机器上的路径,一般都为:/usr/bin/python3.6,也可以使用which python来找; 名称随便写即可,后续会用到

填写python路径

4. 新建pipline job

新建一个流水线job,脚本如下:

node{
    stage("test"){
        withPythonEnv('System-CPython-3.6'){ // 填写刚刚在设置python路径时的名称
            sh "python3 ./{file}.py"
        }
    }
}

运行过之后,会在job对应的workspace下新建一个.pyenv-System-CPython-3.6的文件夹,这个就是Pyenv创建的Virtualenv环境,其实相当于帮用户手动的创建了一个python运行环境在workspace下

5. 激活Virtualenv环境

在jenkins上运行python脚本,引用的模块需要用户自行下载,可以用source进入该环境

source ${workspace path}/.pyenv-System-CPython-3.6/bin/activate

此时环境被激活,我们可以观察到命题行提示变了,有个(.pyenv-System-CPython-3.6)前缀,表示当前环境是一个名为.pyenv-System-CPython-3.6 的Python环境,这样我们可以下载任意需要安装的模块啦~
退出环境,使用deactivate命令

deactivate

6. jenkins运行python脚本时的坑

  1. 提示用户编码错误:
    这个是因为没有加上jenkins的全局编码方式,只需要在Manage Jenkins > configuration 下Global properties


  2. 找不到python的自定义模块

  • 首先看是否加了init文件
  • 使用 from package.file import * 的方式引入模块

你可能感兴趣的:(Pyenv Pipeline提供python虚拟环境Virtualenv)