Avez-vous essayé d'installer un package Python pour un nouveau projet, juste pour voir vos autres projets s'arrêter à cause de problèmes de compatibilité ? Vous pouvez éviter cela avec l'aide de virtualenv en Python.
virtualenv
est un outil qui vous permet de créer des environnements virtuels en Python et de gérer des packages Python. Cela vous aide à éviter d'installer des packages globalement; les installations globales peuvent entraîner la rupture de certains outils système ou d'autres packages.
Par exemple, disons Projet A et Projet B nécessitent la même bibliothèque. Bien que cela ne semble pas être un gros problème au début, les choses peuvent devenir difficiles si vous avez besoin de différentes versions de la même bibliothèque entre Projet A et Projet B . Cela devient un problème car Python ne peut pas différencier le numéro de version dans le site-packages
répertoire.
C'est là que la configuration d'un environnement virtuel en Python est très utile. C'est également une excellente pratique pour vous aider à écrire un meilleur code Python.
Dans cet article, nous allons montrer comment installer virtualenv
en Python. Ensuite, nous verrons comment configurer des environnements virtuels en Python et travailler avec des référentiels.
Commençons !
Installer virtualenv en Python
Un environnement virtuel en Python vous permet de créer un environnement isolé pour vos projets. Cela signifie que vos projets peuvent avoir leurs propres dépendances, indépendamment des dépendances de tout autre projet.
Avec un environnement virtuel Python pour chaque projet, vous êtes libre d'installer différentes versions du même package Python pour chaque projet. En effet, chaque environnement Python est indépendant de tous les autres.
À la base, les environnements virtuels en Python ne sont que des répertoires contenant quelques scripts ; par conséquent, vous pouvez définir autant d'environnements virtuels Python que vous le souhaitez.
Installons virtualenv
en Python !
virtualenv
est facile à installer. Commençons par mettre à jour pip.
pip install --upgrade pip pip --version
Ma sortie :
pip 22.0.3
Ensuite, vous pouvez installer virtualenv
:
pip install virtualenv
Maintenant que virtualenv
est installé, créons un environnement virtuel en Python appelé mytest
:
virtualenv -p python3 mytest
Vous obtiendrez une sortie similaire à celle-ci :
created virtual environment CPython3.8.11.final.0-64 in 10455ms creator CPython3Windows(dest=C:\Users\xavie\mytest, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\xavie\AppData\Local\pypa\virtualenv) added seed packages: pip==22.0.3, setuptools==60.6.0, wheel==0.37.1 activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
Et c'est reparti! Dans la section suivante, nous explorerons l'utilisation de virtualenv
en Python. Vous pouvez trouver plus d'informations sur virtualenv
dans la documentation officielle de Python.
Comment travailler avec et maintenir virtualenv en Python
Avant d'installer ou d'utiliser des packages dans votre nouvel environnement virtuel Python, vous devez l'activer.
Sous Mac ou Unix
Si vous êtes un utilisateur Mac ou Unix, vous pouvez le faire comme suit :
source mytest/bin/activate
Ensuite, vous pouvez vérifier que vous êtes dans un environnement virtuel avec la commande suivante :
which Python
Il devrait être dans le mytest
répertoire :
.../mytest/bin/python
Et c'est tout! Vous pouvez maintenant commencer à installer les packages requis pour votre projet.
Sous Windows
Si vous êtes un utilisateur Windows, vous pouvez activer virtualenv de cette façon :
.\mytest\Scripts\activate
Votre invite doit maintenant être précédée du nom de votre environnement ; dans ce cas, c'est mytest
.
Ensuite, vous pouvez vérifier que vous êtes dans votre environnement virtuel Python avec la commande suivante :
where Python
Comme l'environnement Mac ou Unix, il doit indiquer le mytest
répertoire :
...\mytest\Scripts\python.exe
Vous pouvez maintenant installer tous les packages dont vous avez besoin. Vous pouvez le faire individuellement ou avec l'aide d'un requirements.txt
dossier. Si vous ne savez pas comment procéder, reportez-vous à mon article précédent sur la création d'un fichier d'exigences Python.
Mais comment virtualenv
travailler sous le capot ?
Une fois que vous activez votre environnement virtuel Python, vous obtenez un chemin différent pour l'exécutable Python. C'est parce que le $PATH
la variable d'environnement est modifiée dans l'environnement actif.
Après avoir activé votre environnement virtuel Python, le répertoire bin se trouve maintenant au début du chemin, ce qui signifie que le shell utilise l'instance de votre environnement virtuel au lieu de la version du système Python.
Important :ne stockez pas vos scripts Python et votre fichier requirements.txt dans votre environnement virtuel Python.
Suppression d'environnements virtuels en Python
Le moyen le plus simple de supprimer un environnement virtuel dans Python consiste à supprimer le dossier manuellement. En laissant vos scripts Python en dehors de votre virtualenv
dossier, vous évitez le risque de supprimer tout votre projet la prochaine fois que vous voudrez effacer votre environnement virtuel Python.
En outre, vous souhaiterez peut-être utiliser le même environnement virtuel pour différents projets. Garder tous vos scripts Python en dehors de votre dossier facilitera la gestion de l'ensemble du processus.
Si vous débutez avec Python et que vous souhaitez améliorer vos compétences rapidement, je vous recommande vivement de consulter notre piste de programmation Python.
Qu'en est-il de pyenv et pyenv-virtualenv ?
pyenv-virtualenv est un plugin pyenv pour gérer les environnements virtuels Python. pyenv
est pratique lorsque vous devez installer et basculer entre différentes versions de Python ; cependant, nous ne pouvons pas créer d'environnements virtuels avec des versions arbitraires de Python.
Avec pyenv-virtualenv
, il est plus facile de basculer entre les versions de Python dans différents environnements virtuels. N'hésitez pas à lire mon article sur pyenv si vous souhaitez en savoir plus sur ce sujet.
Utiliser virtualenv avec des référentiels
Maintenant, vous voudrez peut-être pousser votre projet sur GitHub. Une fois que vous avez fini de travailler dans votre environnement virtuel Python, vous devez d'abord initialiser le référentiel :
git init
Ensuite, vous devez inclure le mytest
dossier dans un .gitignore
dossier. De cette façon, l'environnement virtuel Python sera ignoré dans le contrôle de code source.
echo 'mytest' > .gitignore
Une fois cela fait, nous pouvons placer les dépendances de notre projet dans un requirements.txt
fichier :
pip freeze > requirements.txt
Le freeze
commande lira les dépendances et créera un fichier texte contenant une liste de dépendances et leur numéro de version.
Une fois ceci fait, nous ajoutons le fichier à pousser dans le dépôt :
git add requirements.txt
Et enfin, nous validons les fichiers et poussons le projet vers notre référentiel.
Je tiens à souligner l'importance du requirements.txt
dossier ici. Lorsque le fichier n'est pas là, il peut être difficile pour une autre personne d'utiliser un projet.
Par exemple, disons que vous avez un projet Open3D pour travailler sur des nuages de points et que vous utilisez le JVisualizer
pour exécuter des visualisations dans Jupyter Notebook. Vous utilisez Open3D 0.12.0 pour construire votre projet; plus tard, vous décidez de télécharger le projet sur GitHub pour le partager avec vos amis. Si vous n'ajoutez pas de requirements.txt
et laissez vos amis simplement installer la dernière version d'Open3D (0.14.1), ils ne pourront pas exécuter votre Jupyter Notebook.
En fournissant les informations pour recréer le même environnement virtuel que celui que vous avez utilisé pour votre projet, vous rendrez tout plus fluide pour les autres. Cela vous évitera des maux de tête - après avoir créé leur environnement virtuel, vos collègues n'auront qu'à saisir la ligne ci-dessous :
pip install -r requirements.txt
Si vous avez besoin de plus d'informations sur l'utilisation de GitHub, vous pouvez lire le guide rapide de Kateryna sur Git ici. Et si vous n'avez pas conservé votre requirements.txt
fichier à jour, consultez mon article pour une solution facile.
Réflexions finales sur virtualenv en Python
Dans cet article, nous avons appris à configurer un environnement virtuel en Python en utilisant virtualenv et pourquoi c'est important. Nous avons également appris à utiliser un environnement virtuel conjointement avec GitHub.
environnement virtuel facilitera votre vie de développeur et vous aidera à écrire un code plus propre. Si vous ne le faites pas encore, je vous encourage à développer l'habitude de configurer des environnements virtuels Python lorsque vous démarrez un nouveau projet.
Enfin, vous pouvez trouver plus de conseils pour écrire un meilleur code Python ici. Et n'oubliez pas de visiter LearnPython.com pour plus de contenu.