Python

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

Comment créer et gérer des 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 peuvent 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 difficiles à gérer lorsque différentes applications nécessitent différentes versions de la même bibliothèque. Heureusement, Python fournit une solution robuste pour isoler les environnements de développement à l'aide d'environnements virtuels.

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

Un environnement virtuel Python est une arborescence de répertoires autonome qui contient une installation Python spécifique ainsi que 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 distinct, vous pouvez donc créer autant d'environnements virtuels que vous le souhaitez.

Création et gestion d'environnements virtuels

Pour créer des environnements virtuels dans Ubuntu, installez d'abord le package de dépendances requis en exécutant la commande :

$ sudo apt installer python3-venv

Vous pouvez maintenant 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 personnel. Si vous souhaitez utiliser une autre version de Python, vous pouvez remplacer "python3" ci-dessus par le chemin complet vers l'emplacement de votre binaire Python alternatif.

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

$ source myenv/bin/activate

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" dans l'interpréteur Python, vous pouvez voir que l'environnement virtuel fonctionne correctement. Python va maintenant rechercher des packages dans l'environnement personnalisé que vous venez de créer.

Si votre invite shell n'affiche pas le nom de l'environnement virtuel comme préfixe, tout fichier Python que vous exécutez utilisera le système Python à la place. Il est donc nécessaire de sourcer l'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.cfg" ayant une clé "include-system-site-packages" qui est définie sur "false" par défaut. Cette clé indique à l'environnement virtuel s'il faut ou non utiliser les packages de site système. S'il est défini sur "true", Python dans l'environnement virtuel examinera les packages système au cas où un package ne serait pas trouvé dans l'environnement virtuel. Cela rendra également tous les packages installés sur le système importables 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 clés USB externes. Vous aurez besoin d'une clé USB formatée en système de fichiers NTFS ou EXT. Le système de fichiers FAT32 ne prend pas en charge les liens symboliques, ce qui est une condition requise pour que les environnements virtuels fonctionnent.

Utilisation de Pip Package Manager pour installer des packages dans un environnement virtuel

Dans un environnement virtuel, vous pouvez utiliser le gestionnaire de packages pip 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 de package souhaité) :

$ pip installer pygame

Un référentiel interrogeable 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 installer pygame==

Pour rétrograder ou mettre à niveau vers une version spécifique, utilisez la commande (remplacez « 1.9.5" avec le numéro de version souhaité) :

$ pip installer pygame==1.9.5

Pour mettre à niveau un package vers la version la plus récente, exécutez la commande :

$ pip install --upgrade pygame

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

$ liste de pips

Pour enregistrer une liste des packages installés dans virtualenv, exécutez la commande :

$ pip gel > exigences.SMS

Vous pouvez utiliser ci-dessus « exigences.txt" pour installer les packages en masse. Un cas d'utilisation consiste à dupliquer un environnement existant en installant tous les packages à partir de zéro. Pour installer des packages pip en bloc, exécutez la commande :

$ pip install -r exigences.SMS

Utilisation d'environnements virtuels Python avec des applications non Python

Les applications écrites dans d'autres langages de programmation peuvent être mises en bac à sable dans des environnements virtuels Python tant que pip ou tout autre gestionnaire de packages Python fournit des binaires et des packages pour ces langages/frameworks de programmation alternatifs.

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

$ python3 -m venv my_node_env
$ source my_node_env/bin/activate
Roue d'installation de pip $
$ pip installer nodeenv
$ nodeenv -p
$ nodeenv --version
$ nœud --version

Une fois cela fait, 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 le gestionnaire de packages npm seront limités à l'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 indépendant de packages. Le développement de plusieurs applications Python sur le même système peut rapidement polluer votre répertoire personnel et racine et les environnements virtuels facilitent leur maintenance.

Tutoriel Bataille pour Wesnoth
The Battle for Wesnoth est l'un des jeux de stratégie open source les plus populaires auxquels vous pouvez jouer en ce moment. Non seulement ce jeu es...
0 A.ré. Didacticiel
Sur les nombreux jeux de stratégie disponibles, 0 A.ré. parvient à se démarquer comme un titre complet et un jeu tactique très profond bien qu'il soit...
Tutoriel Unity3D
Introduction à Unity 3D Unity 3D est un puissant moteur de développement de jeux. C'est une plateforme multiplateforme qui vous permet de créer des je...