Python >> Tutoriel Python >  >> Python

Comment utiliser virtualenv en Python

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.