sys.path ======== En Python, il existe une variable ``path`` prédéfinie dans le module ``sys`` qui fonctionne de manière similaire à la variable d'environnement ``PATH``. Si j'essaye de l'afficher sur ma machine, voici ce que j'obtiens: import sys print(sys.path) .. code-block:: text [ "", "/usr/lib/python3.8", "/usr/lib/python3.8/lib-dynload", "/home/dmerej/.local/lib/python3.8/", "/usr/lib/python3.8/site-packages", ] Le résultat dépend: * du système d'exploitation * de la façon dont Python a été installé * et de la présence ou non de certains réportoires. En fait, ``sys.path`` est construit dynamiquement par l'interpréteur Python au démarrage. Notez également que ``sys.path`` commence par une chaîne vide. En pratique, cela signifie que le répertoire courant a la priorité sur tout le reste. Priorité du répertoire courant ------------------------------ Prenons un exemple. Si vous ouvrez un explorateur de fichiers dans le deuxième élément de la liste de ``sys.path`` (``/usr/lib/python3.8/`` sur ma machine), vous trouverez un grand nombre de fichiers Python. notamment, vous devriez trouver un fichier ``random.py`` dans ce répertoire. En fait, vous trouverez la plupart des modules de la bibliothèque standard dans ce répertoire. Maintenant, imaginons que vous avez un deuxième fichier ``random.py`` dans votre répertoire courant. Finalement, imaginez que vous lancez un fichier ``foo.py`` contentant ``import random`` dans ce même réportoire. Et bien, c'est le fichier ``random.py`` de votre répertoire qui sera utilisé, et non celui de la bibliothèque standard! Permissions des répertoires de sys.path --------------------------------------- Un autre aspect notable de ``sys.path`` est qu'il ne contient que deux répertoires dans lesquels l'utilisateur courant peut potentiellement écrire : le chemin courant et le chemin dans ``~/.local/lib``. Tous les autres (``/usr/lib/python3.8/``, etc.) sont des chemins "système" et ne peuvent être modifiés que par un compte administrateur (avec ``root`` ou ``sudo``, donc). La situation est semblable sur macOS et Windows.