Aller au contenu principal

Installer des paquets Python

Si vos modules Odoo personnalisés dépendent de bibliothèques Python tierces, déclarez-les dans un fichier requirements.txt à la racine de votre dépôt. Skysize le détecte et installe les paquets listés à chaque déploiement.


Ajouter un fichier requirements.txt

À la racine de votre dépôt, créez un fichier nommé requirements.txt et listez un paquet par ligne :

requests
pandas==2.2.0
numpy>=1.26

Committez et poussez :

git add requirements.txt
git commit -m "Add Python dependencies"
git push

Lors du prochain déploiement, Skysize exécute l'équivalent de pip install --user -r requirements.txt à l'intérieur du conteneur Odoo avant le démarrage du serveur, afin que les paquets soient importables par vos modules.


Comment ça fonctionne

  • Le fichier est lu depuis la racine de votre dépôt (le déploiement monte la racine du dépôt dans le conteneur et y cherche requirements.txt). Un requirements.txt situé dans un sous-répertoire n'est pas pris en compte.
  • Les paquets sont installés dans le site par utilisateur du conteneur, qui réside sur le volume persistant du déploiement, ils persistent donc entre les redémarrages.
  • L'installation s'exécute à chaque déploiement (installation et mise à jour), gardant l'environnement synchronisé avec le fichier.

Version de Python

Les paquets sont installés pour l'interpréteur Python présent dans le conteneur Odoo, pas pour le Python de votre machine. Un paquet qui ne publie de versions que pour un Python plus récent que celui de votre version d'Odoo ne peut pas être installé.

Version d'OdooVersion de Python
16.03.9
17.03.10
18.03.12
19.03.12

La version de Python provient de l'image Odoo, elle est identique pour les déploiements Community et Enterprise.

Avant d'ajouter une dépendance, vérifiez sa valeur Requires-Python sur sa page PyPI (affichée sous "Meta" dans la colonne latérale de la page du projet). Si elle exige un Python plus récent que le tableau ci-dessus, pip ne peut installer aucune de ses versions et vous verrez une erreur de ce type :

ERROR: Ignored the following versions that require a different python version:
1.4.0 Requires-Python >=3.13
ERROR: Could not find a version that satisfies the requirement votre-paquet (from versions: none)
ERROR: No matching distribution found for votre-paquet

Dans ce cas, épinglez une version plus ancienne du paquet qui prend encore en charge le Python de votre conteneur, ou utilisez une autre bibliothèque. Il n'est pas possible de mettre à niveau la version de Python dans le conteneur : elle est fixée par la version d'Odoo que vous déployez.


Vérifier que vos paquets sont installés

La sortie de pip d'un déploiement est disponible dans son onglet Logs : choisissez requirements.log dans le sélecteur Fichier de log. Elle montre exactement ce que pip a fait, y compris la raison d'un éventuel échec. Voir Consulter les logs.


Remarques et limitations

  • Les spécificateurs de version pip standards sont pris en charge (==, >=, ~=, etc.). Épinglez les versions pour des builds reproductibles.
  • Si une installation échoue, le déploiement continue avec un avertissement plutôt que de s'interrompre, consultez donc requirements.log pour confirmer que vos paquets se sont installés correctement.
  • pip installe le fichier comme un tout. Si une seule ligne ne peut pas être satisfaite, aucun des paquets du fichier n'est installé : une seule mauvaise dépendance peut donc ressembler à plusieurs bibliothèques manquantes. Corrigez la ligne fautive et redéployez.
  • Retirer un paquet de requirements.txt empêche son installation lors des déploiements futurs, mais il n'est pas activement désinstallé d'un déploiement déjà en cours d'exécution tant que ce déploiement n'est pas reconstruit.
  • Les paquets nécessitant des bibliothèques système ou des compilateurs pour être construits peuvent échouer à s'installer dans le conteneur. Privilégiez les wheels (pur Python ou précompilés) lorsque c'est possible.