Créer un environnement virtuel
Bonjour,
Je souhaite connaître la raison qui fait je doive utiliser la commande
python -m venv env
au lieu de
python3.7 -m venv env
pour réussir à créer mon environnement virtuel, alors que je possède bien cette version.
Est-ce qu'il faut obligatoirement posséder plus d'une version pour s'autoriser à utiliser la deuxième commande ?
Salut Céline !
L'important en fait est de comprendre effectivement d'où viennent toutes ces commandes. C'est différent sur Mac / Linux et Windows.
Sur Mac / Linux, tu peux en effet facilement ajouter des alias dans un fichier (bash) qui est lu par défaut par ton terminal. Ça te permet d'utiliser des commandes personnalisées pour n'importe quoi. Tu peux ainsi retrouver certaines commandes qui utilisent ce mécanisme et retrouver les alias et ce à quoi ils correspondent dans ces fichiers ou en utilisant la commande alias.
Par exemple chez moi j'ai créé un alias python3 qui pointe vers l'exécutable de python3.7 :
$ alias python3
python3=/usr/local/bin/python3.7
Sur Windows c'est différent. Tu peux aussi créer des alias mais c'est bien plus pénible et dans mes souvenirs il faut passer par le registre.
La variable d'environnement PATH défini des dossiers dans lesquels tu as des fichiers que tu peux exécuter.
Si tu as un dossier C:\executable par exemple qui contient un fichier celine.exe, tu pourrais en rajoutant le dossier dans la variable path lancer ton fichier en utilisant le nom celine (ou celine.exe) dans un terminal au lieu de mettre le chemin complet (C:\executable\celine.exe).
C'est ce mécanisme qui te permet ainsi de lancer une version différente de Python en changeant le chemin du dossier dans la variable Path.
Et dans le cas d'un environnement virtuel, tout se passe justement avec la manipulation de cette variable. Tu peux regarder le fichier activate (activate.bat sur Windows) qu'on source pour activer un environnement virtuel et tu verras toute la magie qui est utilisée ;)
Notamment ces lignes :
_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH
Le script garde ainsi l'ancienne valeur de la variable PATH dans la variable _OLD_VIRTUAL_PATH.
Elle redéfinit ensuite la variable PATH en rajoutant le bin du dossier de l'environnement virtuel, qui contient les exécutables de ton environnement.
Si tu vas voir dans le dossier bin, tu verras tout un tas d'exécutable que tu peux utiliser :
Tu vois ainsi que tu peux par exemple utiliser python, python3 ou même python3.9 dans ce cas.
Sur bash tu peux utiliser la commande which pour vérifier à quoi correspond une commande. Dans mon cas, si tu te souviens bien, j'avais fais un alias nommé python3, qui prend le dessus sur l'exécutable dans le dossier de l'environnement virtuel :
$ which python
/Users/thibh/docstring/.env/bin/python
$ which python3
python3: aliased to /usr/local/bin/python3.7
$ which python3.9
/Users/thibh/docstring/.env/bin/python3.9
Tu peux voir que python et python3.9 correspondent bien aux exécutables dans le dossier .env, mais que python3 est un alias pour le python3.7 dans le dossier bin de mon utilisateur :)
C'était long mais j'espère que c'est plus clair ainsi 😊
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte