Bien débuter avec les environnements virtuels en Python

Si vous êtes passé à Bookworm et avez utilisé Python dans vos projets, vous n’avez pas pu manquer ce changement : tout est fait pour vous faire passer aux environnements virtuels. De quoi s’agit-il et devez-vous vous en inquiéter ? Laissez-moi vous expliquer.

Les environnements virtuels en Python sont des espaces isolés pour les projets. Chaque environnement virtuel a ses propres dépendances et versions de Python. Ils fournissent un environnement de programmation propre, sans conflit ; ce qui est crucial pour les projets complexes.

Si vous venez de mettre à niveau Raspberry Pi OS ou Debian et que vous vous demandez pourquoi PIP ne fonctionne plus, ou si vous voulez en savoir plus sur ce concept, vous êtes au bon endroit, je vais tout expliquer dans cet article.

Au passage, si vous vous sentez dépassé dès que Python est nécessaire pour un projet, je vous conseille de télécharger mon e-book « Maîtrisez Python on Raspberry Pi« . Il vous guidera pas à pas pour apprendre les concepts essentiels (et uniquement ceux-là) pour réaliser n’importe quel projet à l’avenir. Un Raspberry Pi sans Python, c’est comme une voiture sans moteur, vous ratez le plus intéressant ;-).
Profitez de 10 % de réduction en le téléchargeant dès aujourd’hui !

Comprendre le passage aux environnements virtuels

Avant d’essayer de passer en force et de trouver la bonne commande pour contourner les environnements virtuels, je pense qu’il est bon de prendre un peu de recul pour comprendre ce qui a changé et quels sont les effets vos projets Python.

Que sont les environnements virtuels en Python ?

Après avoir créé des machines virtuelles pour préserver le système principal, puis des conteneurs Docker pour assurer la compatibilité, que devons-nous penser des environnements virtuels Python ? Eh bien, c’est la même idée : chaque projet dispose d’un espace qui lui est dédié, où il est exécuté séparément des autres afin d’éviter des problèmes généralisés.

En termes plus techniques, un environnement virtuel en Python est un dossier autonome qui contient une installation Python pour une version spécifique de Python, et plusieurs paquets supplémentaires. Cette configuration vous permet de :

  • Utiliser différentes versions de Python : Si vous avez différents projets qui nécessitent différentes versions de Python, ce n’est plus un problème.
  • Avoir plus de liberté avec les dépendances : Chaque environnement peut avoir un ensemble différent de bibliothèques installées avec différentes versions. Cela évite les conflits entre les exigences des différents projets.
  • Éviter les problèmes de système : Chaque projet pourra fonctionner avec une version différente et des bibliothèques isolées, vous ne casserez donc plus un ancien projet en travaillant sur un nouveau.

C’est également mieux pour les développeurs et le travail en équipe car cela vous permet de copier, partager ou recréer des environnements dans des conditions similaires à des fins de test ou de déploiement. Oui, le même genre d’avantages qu’avec Docker.

Comparaison avec la configuration traditionnelle de Python

Dans les configurations Python traditionnelles, les bibliothèques et les dépendances sont installées globalement et partagées entre tous les projets. En revanche, les environnements virtuels sont créés spécifiquement pour chaque projet, contenant des ensembles isolés et indépendants de bibliothèques et de dépendances.

C’est un peu comme comparer une tour de Jenga avec des constructions Lego.

Dans une configuration traditionnelle, au fur et à mesure que vous continuez d’ajouter de nouveaux projets, la structure devient de plus en plus instable. Une mise à niveau de Python ou une bibliothèque qui entre en conflit avec tout le reste peut facilement faire planter tous vos projets.

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant

En revanche, lorsque vous utilisez des environnements virtuels, vos différents projets sont construits à partir de différents ensembles de briques, indépendants les uns des autres. Cela crée un environnement de développement stable et contrôlé, réduisant le risque d’une défaillance totale.

Dois-je vraiment les utiliser ?

Passer aux environnements virtuels peut sembler compliqué si vous êtes habitué à l’installation traditionnelle des bibliothèques Python. Mais au final, vous y gagnez : cette méthode réduit le risque de conflits et de problèmes de dépendance et permet une gestion propre des projets Python.

Maintenant, je comprends que si vous débutez avec Python, et que vous voulez juste écrire 5 lignes de code pour faire clignoter une LED, cela peut sembler un peu excessif. Dans ce cas, vous avez plusieurs options :

  • Utiliser les paquets système : il est toujours possible d’installer des bibliothèques Python via le gestionnaire de paquets système, afin qu’elles soient disponibles sur l’ensemble du système (environnements virtuels ou non). Par exemple, si vous installez le module “requests” avec :
    sudo apt install python3-requests
    Il sera disponible dans tous vos projets. D’ailleurs, Raspberry Pi OS dispose toujours de nombreux paquets de ce type par défaut, rien n’a changé (ils sont probablement déjà presque tous installés).
  • Forcer l’installation à l’échelle du système : Si vous essayez d’installer un paquet PIP en dehors d’un environnement virtuel, vous obtiendrez un message d’erreur : “externally-managed-environment”. Le système vous demande d’essayer l’option précédente ou de créer un environnement virtuel.
    Mais il est toujours possible de contourner cela, en ajoutant un paramètre supplémentaire :
    sudo pip install <bibliothèque> --break-system-packages
    Cette option est explicite, j’espère donc que vous savez ce que vous faites si vous l’essayez.
  • Créer un environnement virtuel : pour un petit projet Python, vous pouvez toujours essayer d’utiliser un environnement virtuel. C’est quelques commandes de plus à retenir, mais ce n’est pas si compliqué. Lisez la partie suivante pour comprendre comment cela fonctionne.

Comment utiliser les environnements virtuels dans les projets Python

Comment cela fonctionne-t-il en pratique ? Eh bien, ce n’est pas si compliqué. Vous créez simplement un dossier séparé qui contiendra tout, et vous dites au système de l’utiliser lorsque vous travaillez sur votre projet Python. Allons-y.

Prérequis

Si vous utilisez une version récente de Raspberry Pi OS, vous devriez pouvoir vous lancer directement, tout est installé par défaut. Mais sur un système minimal, notamment sur d’autres distributions, je recommande de vérifier que Python est installé, et le paquet ‘python3-venv’ en particulier.

Vous pouvez vérifier avec :
sudo dpkg -l | grep venv

Si cette commande renvoie quelque chose de similaire, cela signifie que le paquet est déjà installé.

Si ce n’est pas le cas, vous pouvez tout installer avec :
sudo apt update
sudo apt install python3-venv

Ensuite, il est recommandé de créer un dossier sur votre disque pour chaque projet principal. Mais si vous ne faites que des scripts basiques et souhaitez les rassembler, il est acceptable d’en créer seulement un, par exemple :
mkdir /home/$USER/python

J’utiliserai cet exemple, mais si vous avez plusieurs dossiers pour différents projets, vous devrez répéter les étapes suivantes pour chacun d’entre eux.

Si les commandes Linux ce n’est pas trop votre truc, n’hésitez pas à jeter un œil à cet article qui vous explique les commandes qu’il faut absolument connaître. Je vous donne aussi une antisèche à télécharger pour les avoir toujours sous la main !

Création d’un environnement virtuel

La syntaxe pour créer un environnement virtuel est simple :
python3 -m venv
Cela créera un nouveau sous-dossier à votre emplacement actuel.

Par exemple :
cd ~/python
python3 -m venv rpitips

Activer et utiliser l’environnement

Maintenant, l’environnement virtuel ne sera pas utilisé à moins que vous ne le spécifiez explicitement. C’est ce qu’on appelle l’activation, et ça peut être fait en exécutant le script d’activation, comme ceci :
source rpitips/bin/activate

Une fois que c’est fait, votre invite de commande aura un préfixe avec le nom de l’environnement virtuel :

Maintenant, toutes les commandes Python que j’exécute à partir de là seront exécutées depuis cet environnement.

Remarque : si vous êtes dans un dossier différent, vous devez définir le chemin complet vers le script d’activation, par exemple:
source /home/pat/python/rpitips/bin/activate
Ou
source ~/python/rpitips/bin/activate

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant

Travailler dans des environnements virtuels

Si vous avez l’habitude d’utiliser Python avec une configuration traditionnelle, vous avez déjà terminé la partie la plus compliquée. À partir de là, c’est plus ou moins comme si vous utilisiez une configuration traditionnelle, sans environnement virtuel.

  • Vous pouvez créer vos fichiers Python dans ce dossier de projet, comme d’habitude.
    nano myscript.py
  • Vous pouvez exécuter des commandes PIP, qui ne s’appliqueront qu’à cet environnement virtuel.
    pip install <nom-de-bibliothèque>
  • Et, si vous exécutez une commande Python à partir de là, elle utilisera cet environnement.
    python myscript.py

Par exemple, disons que je veux utiliser la bibliothèque “emoji”, qui vous permet d’imprimer des emojis dans vos scripts.

  • Un script basique peut ressembler à ceci :
    import emoji
    print(emoji.emojize('Python is :thumbs_up:'))
  • La bibliothèque n’est pas installée sur tout le système, mais je peux l’ajouter à mon environnement avec :
    pip install emoji
  • Ensuite, mon script fonctionne :
    python3 emo.py

Vous devez simplement vous assurer que vous êtes à l’intérieur de l’environnement pour exécuter ce script. Comme la bibliothèque n’est disponible que dans celui-ci, le script ne fonctionnera pas si vous fermez la session et l’exécutez directement, même si vous l’exécutez depuis le même dossier :

C’est pourquoi il est important de rester organisé et d’avoir une structure claire, soit avec un dossier par projet, un dossier pour vos petits scripts, ou simplement en installant les bibliothèques à l’échelle du système lorsqu’elles sont disponibles.

Désactivation et alternance entre les environnements

Pour quitter un environnement virtuel, vous utiliserez simplement cette commande :
deactivate

Comme vous pouvez le voir, le préfixe disparaît et vous n’exécutez plus de commandes dans cet environnement. Vous pouvez passer à un autre environnement en exécutant le script “activate” correspondant si nécessaire.

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant

Vous voulez discuter avec d'autres passionnés de Raspberry Pi ? Rejoignez la communauté, partagez vos projets en cours et posez vos questions sur le forum (en anglais).

Les environnements virtuels en pratique

J’ai expliqué comment vous pouvez créer et utiliser des environnements virtuels pour vos projets Python via le terminal, mais il est également possible de les utiliser à partir de vos éditeurs de texte préférés.

Thonny

Thonny est un éditeur de texte basique, souvent utilisé pour les projets Python, surtout sur Raspberry Pi, car il est préinstallé sur Raspberry Pi OS.

Les fonctionnalités sont assez limitées, mais vous pouvez tout de même changer l’interpréteur par défaut pour utiliser un environnement virtuel :

  • Ouvrez Thonny comme d’habitude.
  • Cliquez sur l’interpréteur Python dans le coin inférieur droit.
  • Vous obtiendrez une liste avec les versions Python installées sur votre système, mais vous pouvez également ajouter un binaire à partir d’un environnement virtuel :
  • Avec une version récente de Thonny, vous pouvez même créer un nouvel environnement virtuel à partir de là.

Si vous ne le saviez pas, Thonny a des fonctionnalités intégrées pour gérer des bibliothèques supplémentaires. Si vous allez dans “Tools > Manage packages”, vous pouvez installer des modules PIP, qui seront automatiquement installés dans l’environnement actuel :

Ça ne fonctionne pas via “Manage plug-ins” (il essaie de les installer à l’échelle du système), mais ça fonctionne depuis cette fenêtre.

J’ai un tutoriel complet sur Thonny et ses fonctionnalités cachées, assurez-vous de le consulter si vous vous sentez un peu perdu.

Geany

Geany est un peu plus évolué, dispose de plus de fonctionnalités, mais peut être un peu déroutant.

Je n’ai pas trouvé la façon parfaite d’utiliser des environnements virtuels avec, mais je pense que vous pouvez vous rendre dans “Build” > “Set build commands” pour changer la commande d’exécution, et utiliser celle de votre environnement virtuel à la place de celle par défaut :

Si vous avez plusieurs environnements, vous pouvez créer des projets Geany et définir une commande différente pour chacun d’eux.

Si vous voulez en savoir plus sur Geany, vous pouvez lire cet article : Comment utiliser Geany sur Raspberry Pi ? (Guide complet avec images).

Visual Studio Code

Avec un éditeur plus avancé, comme Visual Studio Code, c’est encore plus facile. Si vous ouvrez un dossier, il détectera automatiquement l’environnement virtuel à l’intérieur et l’utilisera par défaut.

Remarque : Une extension Python est nécessaire pour déboguer et exécuter des scripts Python (comme l’extension IntelliSense par exemple).

Vous pouvez également créer un nouvel environnement virtuel à partir d’un dossier existant, directement depuis l’interface. Appuyez sur “CTRL+SHIFT+P” pour ouvrir la palette, et recherchez “Create environment” :

VSCode va le créer dans le dossier actuel et l’activer automatiquement.

Une fois que c’est fait, vous pouvez utiliser la fenêtre de terminal à l’intérieur de VSCode pour installer de nouveaux paquets PIP (la commande d’activation est exécutée automatiquement) :

Maintenant que vous maîtrisez les environnements virtuels, essayons d’appliquer cela dans un projet tant que c’est encore frais dans votre esprit :

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant

Ressources supplémentaires pour votre Raspberry Pi

Initiation au Raspberry Pi en vidéo
Si vous débutez et voulez passer rapidement à la vitesse supérieure, j’ai exactement ce qu’il vous faut.
Regardez ma formation vidéo qui vous aidera à démarrer du bon bien, choisir votre matériel, installer les meilleures applications et vous lancer directement dans vos premiers projets avec mon aide.
Regarder les vidéos dès maintenant

Maîtrisez votre Raspberry Pi en 30 jours
Vous avez besoin de plus ? Si vous êtes à la recherche des meilleures astuces pour devenir expert sur Raspberry Pi, ce livre est fait pour vous. Développez vos compétences sous Linux et pratiquez via de nombreux projets en suivant mes guides étape par étape. 10% de remise aujourd’hui !
Télécharger le livre au format PDF ici

Maîtrisez Python sur Raspberry Pi
Pas besoin d’être un génie pour coder quelques lignes pour votre Raspberry Pi.
Je vous apprends juste ce qu’il faut sur Python afin de réaliser n’importe quel projet. La seconde partie du livre est d’ailleurs consacrée à des exemples de projets ou je vous guide pas à pas.
Ne perdez pas de temps, apprenez le strict nécessaire et économisez 10% avec ce lien :
Télécharger maintenant

Autres ressources pour profiter de votre Raspberry Pi
J’ai regroupé toutes mes recommandations de logiciels, sites utiles et de matériel sur cette page de ressources. Je vous invite à la consulter régulièrement pour faire les bons choix et rester à jour.
Visiter les pages ressources


Ce tutoriel ne marche plus à 100%? Prévenez-moi pour que je le mette à jour!

A lire également

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *