Comment créer et gérer les environnements virtuels Python

Comment créer et gérer les environnements virtuels Python
Il est assez courant de voir des développeurs Python installer et mettre à niveau des packages à partir de sources standard et non standard pour développer des applications. Les raisons pourraient aller de l'utilisation d'une version plus récente d'un module à l'utilisation d'une version spécifique en cas de régression.

Ces exigences et cas d'utilisation peuvent être douloureux à gérer lorsque différentes applications nécessitent des versions différentes de la même bibliothèque. Heureusement, Python fournit une solution robuste pour isoler les environnements de développement en utilisant des environnements virtuels.

Qu'est-ce qu'un environnement virtuel Python?

Un environnement virtuel Python est un arbre de répertoire autonome qui contient une installation Python spécifique avec toutes ses bibliothèques standard. Les applications nécessitant une version particulière de la bibliothèque peuvent être isolées dans ces environnements virtuels sans polluer le système ou d'autres implémentations Python. Chaque environnement virtuel est un bac à sable séparé, vous pouvez donc créer autant que les environnements virtuels que vous souhaitez.

Création et gestion des environnements virtuels

Pour créer des environnements virtuels dans Ubuntu, installez d'abord le package de dépendance requis par la commande en cours d'exécution:

$ sudo apt installer python3-venv

Vous pouvez désormais créer des environnements virtuels en exécutant la commande:

$ Python3 -M Venv Myenv

L'exécution de la commande ci-dessus créera un environnement virtuel appelé «Myenv» dans votre répertoire domestique. Si vous souhaitez utiliser une autre version de Python, vous pouvez remplacer «Python3» ci-dessus par un chemin complet vers l'emplacement de votre alternative Binaire Python.

Pour activer l'environnement personnalisé créé ci-dessus, exécutez la commande:

$ source myenv / bin / active

Une fois l'environnement virtuel activé, l'invite du shell changera pour refléter l'environnement virtuel actuel que vous utilisez. Si vous exécutez «sys.Path »Commande à l'intérieur de l'interpréteur Python, vous pouvez voir que l'environnement virtuel fonctionne correctement. Python recherchera désormais des packages dans l'environnement personnalisé que vous venez de créer.

Si votre invite de shell n'affiche pas le nom de l'environnement virtuel comme préfixe, tout fichier Python que vous exécutez utilise le système Python à la place. Il est donc nécessaire de s'approvisionner dans un environnement virtuel avant d'exécuter un fichier dans votre environnement personnalisé.

Vous pouvez désactiver un environnement virtuel en exécutant la commande:

$ désactiver

Chaque environnement virtuel Python comprend un «pyvenv.Fichier CFG ”ayant une touche« include-système-site-packages »qui est définie sur« false »par défaut. Cette clé indique un environnement virtuel à utiliser ou non des packages de sites système. S'il est défini sur «vrai», Python dans un environnement virtuel examinera les packages système au cas où un package ne se trouve pas dans l'environnement virtuel. Il rendra également tous les packages installés par système imporables dans l'environnement virtuel.

Pour supprimer un environnement virtuel, il vous suffit de supprimer le répertoire de l'environnement virtuel et il sera parti.

Il est possible de créer et de stocker VirtualEnv sur des disques USB externes. Vous devrez avoir un lecteur USB formaté dans le système de fichiers NTFS ou EXT. Le système de fichiers FAT32 ne prend pas en charge Symlinks, ce qui est une exigence pour que les environnements virtuels fonctionnent.

Utilisation du gestionnaire de packages PIP pour installer des packages dans un environnement virtuel

Dans un environnement virtuel, vous pouvez utiliser PIP Package Manager pour installer, mettre à niveau et désinstaller des packages. Il est possible de rétrograder ou de mettre à niveau un package en spécifiant un numéro de version particulier.

Vous pouvez installer un package à l'aide de PIP en exécutant la commande (remplacez Pygame par le nom du package souhaité):

$ pip install pygame

Un référentiel consultable de packages PIP peut être trouvé ici.

Pour désinstaller un package, utilisez la commande:

$ pip désinstaller pygame

Pour voir toutes les versions d'un package, exécutez la commande:

$ pip install pygame ==

Pour rétrograder ou passer à une version spécifique, utilisez la commande (remplacer «1.9.5 ”avec le numéro de version souhaité):

$ pip install pygame == 1.9.5

Pour mettre à niveau un package vers la dernière version, exécutez la commande:

$ PIP INSTALLATION - PYGAME DE PRODUIT

Pour voir tous les packages installés dans un environnement virtuel, exécutez la commande:

$ Pip List

Pour enregistrer une liste des packages installés dans VirtualEnv, Exécutez la commande:

$ PIP Freeze> Exigences.SMS

Vous pouvez utiliser ci-dessus «Exigences.TXT »Fichier pour installer des packages en vrac. Un cas d'utilisation consiste à dupliquer un environnement existant en installant tous les packages à partir de zéro. Pour installer des packages PIP en bull, exécutez la commande:

$ pip install -r exigences.SMS

Utilisation d'environnements virtuels Python avec des applications non python

Les applications rédigées dans d'autres langages de programmation peuvent être sandinées dans des environnements virtuels Python tant que PIP ou tout autre gestionnaire de packages Python fournit des binaires et des packages pour ces langages de programmation / frameworks alternatifs.

Voici un petit exemple qui explique l'installation de nœud.JS dans un environnement virtuel Python. Exécutez les commandes suivantes une par une:

$ python3 -m venv my_node_env
$ source my_node_env / bin / activer
$ PIP INSTALLEWE
$ pip install nodeenv
$ NODEENV -P
$ NODEENV - Version
$ node --version

Une fois terminé, vous aurez un nœud complètement isolé.environnement JS. Vous pouvez créer autant d'environnements virtuels que vous le souhaitez pour différents nœuds.Applications JS. Les packages installés via NPM Package Manager se limiteront à un environnement virtuel activé uniquement.

Conclusion

La création d'un environnement virtuel Python est un excellent moyen de conteneuriser les environnements de développement. Chaque environnement virtuel a son propre binaire Python et son propre ensemble de packages indépendants. Le développement de plusieurs applications Python sur le même système peut rapidement polluer votre répertoire maison et racine et vos environnements virtuels facilitent les maintiens.