Résolue

Créer un environnement virtuel

# Environnement de travail # Ligne de commande

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,


ça dépend pas mal de la manière dont tu as installé ta version de python. Tu avais déjà une version installée ? Tu as ajouté à ta variable PATH quand tu as installé ?


les commandes du type


python3.6


fonctionnent chez moi sur machine macos ou linux mais pas sur windows.

Non j'ai uniquement installé python3.7 pour la première fois sur ce PC au commencement de la formation.

NoneNone

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 😊

Merci beaucoup!

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.