Variable Path

Dans cet article, je vais t’aider à bien comprendre ce qu’est la variable PATH et comment ajouter des chemins d’accès dans les systèmes Windows et Unix.

Si tu regardes StackOverFlow, tu remarqueras quelques répliques fréquentes :

  • « Je pense que ce n’est pas dans ton PATH »
  • « Tu as peut-être fait une erreur dans ton PATH »
  • « L’as-vous ajouté à ton PATH ? »
  • « Vérifie si l’exécutable se trouve dans ton PATH »

Qu’est-ce que c’est que ce PATH ? Et en quoi, on en a besoin dans le domaine de la Data Science ?

Dans cet article, je vais t’enseigner comment gérer cette variable d’environnement (qui peut être déroutante) dans les systèmes Windows et Unix.

Commençons par le commencement !

Les commandes ont également des chemins d’accès

Quelle est la commande de terminal que tu utilises le plus ? La mienne c’est git, car je fais souvent des commits pour mes projets éducatifs.

La raison pour laquelle je pose cette question est que la plupart des commandes de terminal ont leur propre chemin d’accès dans le système d’exploitation. Pour trouver ce chemin, il suffit d’exécuter le nom de la commande valide. Par exemple, voici le chemin vers mon instance git :

$ which git  # Dans Windows, utilise `where`

/usr/bin/git

Tu reconnaîtras peut-être que ce qui précède est un chemin absolu. Mais il s’agit d’un chemin vers quoi, exactement ?

Un fichier binaire exécutable ! (Si tu es sous Windows, tu obtiendras un chemin vers un fichier .exe).

Il contient des instructions sur ce qu’il faut faire lorsque les commandes git sont exécutées. Toutes les commandes de terminal sont des scripts shell ou des exécutables sous une forme ou une autre qui exécutent certaines tâches.

Par exemple, tu peux essayer la commande which sur des commandes de terminal intégrées comme clear, cat ou touch et tu obtiendras des chemins absolus (pour la commande which elle-même).

Une fois que tu as obtenu le chemin d’accès à l’exécutable, tu peux essayer d’exécuter une commande avec son chemin d’accès complet, comme ceci :

$ /usr/bin/git status -s  # identique à `git status -s`

M 2023/6_june/7_path/dump.ipynb

Et ça marche ! Mais voici ce qui est intéressant – comment le mot git peut-il être équivalent au chemin absolu /usr/bin/git ? Je veux dire, git n’est qu’un mot.

Comment ton ordinateur connaît-il les chemins d’exécution complets de tant de commandes et peut-il les exécuter avec un seul mot-clé ?

(C’est l’instant eurêka !)

BooM, en utilisant la variable PATH !

Nous y voilà – la variable PATH

Le PATH est une variable qui contient les chemins d’accès absolus aux fichiers exécutables qui exécutent presque toutes les commandes de terminal, qu’elles soient intégrées ou installées par l’utilisateur.

Lorsque tu tapes une commande telle que conda env create, le système d’exploitation recherche un exécutable appelé conda dans ta variable PATH. S’il ne trouve pas l’exécutable, il renvoie une erreur de command not found :

$ unknown_command
unknown_command: command not found

Vous pouvez imprimer les chemins de votre PATH à l’aide d’une seule commande.

Sur les systèmes de type Unix :

$ echo $PATH

/home/rod/.local/bin:/home/rod/anaconda3/bin:...

Sous Windows :

$ ECHO %PATH%

C:\Python39\Scripts\;C:\Python39\;C:\WINDOWS\system32;...

Chaque chemin du PATH est séparé par un deux-points sous Unix et un point-virgule sous Windows.

C’est grâce à ces chemins que tu n’as pas besoin de te souvenir de dizaines de chemins absolus vers les exécutables installés dans ton système.

Travailler avec la variable PATH sous Windows

L’édition de la variable PATH est différente dans les systèmes de type Unix et dans les systèmes Windows. Cette section traite de la gestion de la variable PATH sous Windows.

L’opération la plus courante que tu feras avec PATH est d’y ajouter de nouveaux chemins d’accès. Par exemple, pour ajouter le répertoire C:\Users\user\Desktop\articles à PATH, tu dois ouvrir l’Invite de commande ou Powershell avec des privilèges d’administrateur. Exécute ensuite la commande suivante :

$ setx PATH "%PATH%;C:\Users\user\Desktop\articles"

Mais ne te précipite pas : si tu ne fais pas attention, la commande setx peut se révéler très néfaste pour ton PATH. Ainsi, la chose la plus sûre à faire sous Windows est d’ajouter des chemins d’accès via la fenêtre des propriétés du système.

Voici des instructions pas à pas pour ajouter un nouveau chemin à PATH :

  1. Clique sur le bouton Start (Démarrer) et recherche « Edit the system environment variables » (« Modifier les variables d’environnement du système »), puis clique sur le premier résultat.
  2. Clique sur « Environment Variables » (« Variables d’environnement ») dans la fenêtre qui s’ouvre.
  3. Décide si le nouveau chemin doit être ajouté pour l’utilisateur actuel ou pour l’ensemble du système.
  4. Sous « User variables for your_username » (« Variables utilisateur pour votre_nom_d’utilisateur ») ou « System variables » (« Variables système »), fais défiler l’écran jusqu’à ce que tu trouves la variable « path » (« Chemin »).
  5. Sélectionne-la et clique sur Edit (Modifier).
  6. Dans la nouvelle fenêtre contextuelle, clique sur « New » (« Nouveau ») et colle le nouveau chemin d’accès, par exemple C:\Users\user\Desktop\articles.
  7. Clique trois fois sur OK.

Dans la dernière fenêtre contextuelle, tu peux également supprimer ou modifier l’ordre des chemins (voir la dernière section sur l’importance de l’ordre).

Travailler avec la variable PATH sous Unix

Dans les systèmes de type Unix, il est beaucoup plus facile d’ajouter un nouveau chemin à PATH.

Par exemple, pour ajouter le chemin /home/rod/articles, tu dois exécuter la commande suivante :

$ export PATH="/home/rod/articles:$PATH"

Le nouveau chemin sera ajouté au tout début de PATH. Pour l’ajouter à la fin, il faut changer la place de $PATH :

$ export PATH="$PATH:/home/rod/articles"

Mais le nouveau chemin ne sera ajouté que pour la durée de la session de terminal en cours. Pour l’ajouter de manière permanente à la variable d’environnement PATH, tu dois ajouter la commande export au fichier de configuration de ton interpréteur de commandes.

Le fichier de configuration spécifique dépend de l’interpréteur de commandes que tu utilises :

  • Pour Bash : Ajoutez la commande export à ~/.bashrc ou ~/.bash_profile (tu peux également considérer .profile, voir ici pour les différences).
  • Pour Zsh : Ajoute la commande export à ~/.zshrc.
  • Pour Fish : Ajoute la commande export à ~/.config/fish/config.fish.

Une fois que tu as choisi le tien dans la liste (je choisirai .bash_profile), utilise la commande echo suivante :

$ echo 'export PATH="$PATH:/home/rod/articles"' >> ~/.bash_profile

Ensuite, recharge le fichier de configuration avec source ~/.bash_profile et le tour est joué.

L’ordre des chemins

L’ordre des chemins dans la variable PATH détermine la priorité dans laquelle les répertoires sont recherchés lors de l’exécution de commandes ou de programmes.

Lorsque tu entres une commande dans le terminal, le système d’exploitation recherche son exécutable en vérifiant séquentiellement chaque chemin d’accès dans PATH, de gauche à droite. Si plusieurs répertoires contiennent des exécutables portant le même nom, le premier sera utilisé.

Par exemple, si tu as plusieurs versions de Python sur ton système, l’exécutable Python le plus à gauche dans votre PATH sera utilisé lorsque tu lanceras python dans le terminal.

Conclusion

Dans le monde de la Data Science et du Machine Learning, le terminal est souvent négligé. Au lieu de cela, les cours en ligne et les bootcamps attirent l’attention des débutants sur des IDE plus brillants comme VSCode ou JupyterLab.

Mais un jour, l’inévitable se produit et ils doivent ouvrir le shell rouillé sur leurs propres machines. C’est là qu’ils se heurtent à des histoires de PATH.

J’espère que cet article te permettra de ne plus jamais avoir de problèmes avec cette variable PATH !

Publications similaires

0 Commentaires
Le plus récent
Le plus ancien Le plus populaire
Commentaires en ligne
Afficher tous les commentaires