Dans cet article d’astuces nous allons voir les problèmes (et leurs solutions) que l’on peut rencontrer lorsque nous installons virtualenv afin de gérer les environnements virtuels de nos projets en python3 sur une distribution linux comme Ubuntu 20.04 par exemple.
Pré-requis
- Une machine locale ou une vm sous ubuntu 20.04 ou équivalent (xubuntu 20.04 dans l’exemple)
Présentation de virtualenv
Virtualenv est un utilitaire permettant d’isoler vos projets python3 les uns des autres. Le but est d’activer un environnement virtuel différent pour chacun de vos projets afin d’y installer vos dépendances nécessaires (par exemple Django si vous faites un projet Django). Les dépendances sont comme vous le savez peut être installé par pip, le gestionnaire de dépendances Pyhton.
Résumé des étapes d’installation
Comme évoqué dans l’article sur l’environnement pour un projet Django, les étapes d’installation sont les suivantes pour une machine sous Ubuntu 20.04 :
sudo apt install python3-pip pip3 install virtualenv
A partir de ce moment là vous devriez avoir accès à la commande virtualenv
, malheureusement dans certains cas cela ne fonctionne pas est vous obtenez le message d’erreur suivant :
$ virtualenv venv3 Command 'virtualenv' not found, but can be installed with: sudo apt install python3-virtualenv
A ce moment là il ne faut pas faire sudo apt install python3-virtualenv
mais ajouter le chemin /home/USER/.local/bin
dans votre variable d’environnement PATH dans votre fichier ~/.bashrc
par exemple en fin de ce fichier insérer la ligne suivante en remplaçant USER par votre utilisateur Unix :
PATH="$PATH:/home/USER/.local/bin"
A partir de ce point il vous faut prendre en compte la modification réalisée ci-dessus. Pour cela il faut sourcer le fichier ~/.bashrc
, soit en fermant et ouvrant de nouveau tous vos terminaux, soit en lançant la commande suivante : source ~/.bashrc
Vous devriez maintenant avoir accès à la commande comme ceci pour créer un environnement nommé venv3 :
$ virtualenv venv3 created virtual environment CPython3.8.2.final.0-64 in 919ms creator CPython3Posix(dest=****/venv3, clear=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=***.local/share/virtualenv) added seed packages: pip==20.1.1, setuptools==49.2.0, wheel==0.34.2 activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
Si tout c’est bien passé vous devriez avoir un dossier venv3
créé dans votre dossier courant. Pour activer l’environnement il ne vous reste plus qu’à faire source venv3/bin/activate
et devant votre prompt habituel vous devriez voir apparaître (venv3).
Dans le cas où vous avez fait sudo apt install python3-virtualenv, pas de panique vous pouvez avoir le message d’erreur suivant :
$ virtualenv venv3
ModuleNotFoundError: No module named 'virtualenv.seed.embed.via_app_data'
Dans ce cas faites sudo apt remove python3-virtualenv
Ensuite ajouter le chemin /home/USER/.local/bin
dans votre variable d’environnement PATH dans votre fichier ~/.bashrc
par exemple en fin de ce fichier insérer la ligne suivante en remplaçant USER par votre utilisateur Unix :
PATH="$PATH:/home/USER/.local/bin"
Prenons en compte le changement, soit en fermant et ouvrant de nouveau tous vos terminaux, soit en lançant la commande suivante : source ~/.bashrc
Vérifions que tout est de nouveau opérationnel en lançant la commande :
$ virtualenv venv3 created virtual environment CPython3.8.2.final.0-64 in 919ms creator CPython3Posix(dest=****/venv3, clear=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=***.local/share/virtualenv) added seed packages: pip==20.1.1, setuptools==49.2.0, wheel==0.34.2 activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
De même, un dossier venv3
sera créé dans votre dossier courant. Pour activer l’environnement virtuel comme précédemment taper source venv3/bin/activate
et il apparaîtra devant votre prompt habituel le contenu (venv3)
.
Voici pour un petit résumé des erreurs potentielles assez courante sur l’installation de virtualenv, pour information les indications donné dans cet article apparaîsse lorsque la commande pip3 install virtualenv
se termine mais il n’est pas rare d’aller un peu vite et de ne pas faire attention aux indications donner par le retour de cette commande d’installation.
Pour la suite n’hésitez pas à tester le tutoriel sur un projet Django qui permet de voir quelques aspects de la mise en place de cette technologie.
Image par Falkenpost de Pixabay