Déploiement de Python 3.9 sur Linux pour l'Intégration Continue avec Jenkins

Installation et Configuration de l'Interpréteur Python

La procédure commence par le téléchargement et la compilation de Python 3.9.12.

# Créer un répertoire d'accueil pour l'installation
mkdir -p /opt/python39
cd /opt/python39

# Récupérer l'archive du code source
wget https://www.python.org/ftp/python/3.9.12/Python-3.9.12.tgz

# Décompresser l'archive
tar -xf Python-3.9.12.tgz
cd Python-3.9.12

Avant la compilation, il est nécessaire d'installer les bibliothèques de développmeent système requises. Sur une distribution basée sur Debian/Ubuntu :

sudo apt-get update
sudo apt-get install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev liblzma-dev

Configurez, compilez et installez Python dans un répertoire dédié pour éviter les conflits avec la version système.

# Configurer la compilation pour une installation dans /usr/local/python39
./configure --prefix=/usr/local/python39 --enable-optimizations

# Compiler le code source (peut prendre du temps)
make -j $(nproc)

# Installer les fichiers compilés
sudo make altinstall

L'utilisation de make altinstall prévient l'écrasement de la commande python3 par défaut du système. Une méthode systémique pour gérer les versions consiste à créer des liens symboliques via update-alternatives :

sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/python39/bin/python3.9 1
sudo update-alternatives --install /usr/bin/pip3 pip3 /usr/local/python39/bin/pip3.9 1

Vérifiez l'installation en affichant les versions :

python3 --version
pip3 --version

Gestion des Dépendances du Projet

Chaque bibliothèque tierce requise par le framework de test doit être installée dans cet environnement. Pour une gestion propre et isolée, l'utilisation d'environnements virtuels (venv) est fortement recommandée.

# Créer et activer un environnement virtuel pour le projet
python3 -m venv /home/jenkins/project_venv
source /home/jenkins/project_venv/bin/activate

# Installer les paquets requis à partir d'un fichier
pip install -r requirements.txt

# Ou installer des paquets individuels
pip install requests selenium

L'exécution d'un script se fait en ciblant explicitement l'interpréteur de l'environnement virtuel actif.

# Exécuter le point d'entrée du framework
python run_tests.py

Résolution de Problèmes Courants

1. Erreurs d'encodage dans les sorties : Assurez-vous que les scripts spécifient l'encodage en en-tête et que la variable d'environnement LANG est définie correctement sur le serveur (ex: en_US.UTF-8).

# Début d'un script Python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
print("Test exécuté.")

2. Échec de l'installlation de paquets pip : Une version obsolète de pip ou des problèmes réseau/SSL peuvent en être la cause. Mettez à jour pip dans l'environnement et vérifiez la connectivité.

# Mettre à jour pip lui-même
python3 -m pip install --upgrade pip

# Installer un paquet en ignorant la vérification SSL (à utiliser avec prudence)
pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org requests

3. Conflist avec le Python système : L'utilisation systématique de python3 et pip3 (ou la source de l'environnement virtuel) garantit l'utilisation de la version installée, évitant ainsi la confusion avec l'interpréteur Python 2 souvent présent par défaut sur les systèmes Linux plus anciens.

Étiquettes: Python Linux Jenkins Déploiement Intégration Continue

Publié le 20 juin à 19h36