![](https://artem.services/wp-content/uploads/2019/02/Jenkins-Logo.png)
To select a Python version in the pipeline, you need to have the required versions installed on the system.
Further actions were performed on CentOS 7 and the installation of binaries took place in the “/usr/bin/” directory for convenience, since the system already has versions “2.7” and “3.6” installed from the repository along this path.
Install dependencies:
yum install gcc openssl-devel bzip2-devel libffi-devel wget
Download the necessary sources of the necessary versions, in this case: “3.7“, “3.8” and “3.9“
cd /usr/src
wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
wget https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tgz
wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
Unzip:
tar xzf Python-3.7.9.tgz
tar xzf Python-3.8.9.tgz
tar xzf Python-3.9.5.tgz
Install:
cd Python-3.7.9
./configure --enable-optimizations --prefix=/usr
make altinstall
cd ../Python-3.8.9
./configure --enable-optimizations --prefix=/usr
make altinstall
cd ../Python-3.9.5
./configure --enable-optimizations --prefix=/usr
make altinstall
Now let’s install the plugin Pyenv Pipeline
Go to Jenkins settings
![](https://artem.services/wp-content/uploads/2020/03/001.png)
Section “Manage Plugins“
![](https://artem.services/wp-content/uploads/2020/03/002.png)
Go to the “Available” tab and in the search we specify “Pyenv Pipeline“
![](https://artem.services/wp-content/uploads/2021/06/Screenshot-2021-06-23-at-19.20.45.png)
And install it.
To select the version, we will use the “choice” parameter
Pipeline:
properties([
parameters([
choice(
name: 'PYTHON',
description: 'Choose Python version',
choices: ["python2.7", "python3.6", "python3.7", "python3.8", "python3.9"].join("\n")
),
base64File(
name: 'REQUIREMENTS_FILE',
description: 'Upload requirements file (Optional)'
)
])
])
pipeline {
agent any
options {
buildDiscarder(logRotator(numToKeepStr: '5'))
timeout(time: 60, unit:'MINUTES')
timestamps()
}
stages {
stage("Python"){
steps{
withPythonEnv("/usr/bin/${params.PYTHON}") {
script {
if ( env.REQUIREMENTS_FILE.isEmpty() ) {
sh "python --version"
sh "pip --version"
sh "echo Requirements file not set. Run Python without requirements file."
}
else {
sh "python --version"
sh "pip --version"
sh "echo Requirements file found. Run PIP install using requirements file."
withFileParameter('REQUIREMENTS_FILE') {
sh 'cat $REQUIREMENTS_FILE > requirements.txt'
}
sh "pip install -r requirements.txt"
}
}
}
}
}
}
}
Let’s start the build:
![](https://artem.services/wp-content/uploads/2021/06/Screenshot-2021-06-23-at-19.48.39.png)
Select the desired version, for example, “3.9” and run the build:
![](https://artem.services/wp-content/uploads/2021/06/Screenshot-2021-06-23-at-19.48.51.png)
Let’s check the build log:
![](https://artem.services/wp-content/uploads/2021/06/Screenshot-2021-06-23-at-19.49.41.png)