{{tag>dev python venv git}} ====== Python : environnement virtuel dans Git ====== L'environnement virtuel est créé afin de garantir une isolation des dépendances nécessaires au bon fonctionnement du programme Python. Ainsi, les mises à jours des bibliothèques du système ne remplaceront pas les versions nécessaires au bon fonctionnement de l'application. **L'environnement virtuel n'a pas à être suivi par le gestionnaire de révision Git**, il peut d'ailleurs tout à fait être créé en dehors du dépot. S'il est créé à l'intérieur du répertoire du projet il devra être ignoré. La démarche générale est la suivante: * On crée un répertoire projet pour le programme Python à développer, on initialise le dépôt Git; * On crée le script Python et on fait un import initial pour commencer le suivi; * On crée un environnement virtuel (par convention ''env'') dans le dépôt; * On crée ou on modifie le fichier **.gitignore** pour désactiver le suivi sur l'ensemble du dossier et du contenu de ''./env'' * On active l'environnement virtuel, on installe les dépendances nécessaires au fonctionnement du script. * Pour sauvegarder et pouvoir reconstruire l'environnement virtuel dans Git, on exporte les dépendances via la commande pip freeze dans un fichier ''requirements.txt''. # Avant de modifier le script Python, on charge son environnement virtuel source "./env/bin/activate" # on travaille sur le script, on installe les modules nécessaires pip3 install pyyaml # Pour sauvegarder l'environnement virtuel utilisé par notre script dans Git # on enregistre la liste des modules installés dans un fichier texte pip3 freeze > requirements.txt # On ajoute le fichier à l'index et on le pousse dans le dépot git add requirements.txt git commit -m "Fichier de création de l'environnement virtuel Python" # pour terminer, on quitte l'environnement virtuel deactivate ===== Le fichier .gitignore ===== .venv/ *.pyc __pycache__/ instance/ .pytest_cache/ .coverage htmlcov/ dist/ build/ *.egg-info/ ===== Références ===== * https://stackoverflow.com/questions/60719286/actions-for-creating-venv-in-python-and-clone-a-git-repo * https://medium.com/wealthy-bytes/the-easiest-way-to-use-a-python-virtual-environment-with-git-401e07c39cde * https://gist.github.com/simonw/4835a22c79a8d3c29dd155c716b19e16