Exemple de comment ajouter un nouveau chemin à votre PYTHONPATH pour importer vos propres modules en python
Introduction
Par exemple, j'ai sur mon ordinateur local un répertoire appelé "github_projects" (situé dans le chemin suivant "/Users/John/github_projects") où j'ai stocké tous mes propres modules python que je développe :
github_projects/
project_01/
project_02/
project_03/
.
.
.
Cependant, si j'essaie d'importer un module python depuis un autre répertoire sur mon ordinateur, le message d'erreur suivant s'affichera :
>>> import project_01
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'project_01'
Nous obtenons ce message d'erreur ici car python ne sait pas où trouver le module python project_01. Une solution simple pour vérifier cela est de regarder sys.path :
>>> import sys
>>> sys.path
renvoie par exemple dans mon cas :
['', '/Users/John/anaconda3/lib/python36.zip', '/Users/John/anaconda3/lib/python3.6', '/Users/John/anaconda3/lib/python3.6/lib-dynload', '/Users/John/anaconda3/lib/python3.6/site-packages', '/Users/John/anaconda3/lib/python3.6/site-packages/aeosa']
pouvez également vérifier votre PYTHONPATH en utilisant le module python os:
>>> import os
>>> os.environ['PYTHONPATH']
Une autre solution pour vérifier votre PYTHONPATH est de saisir directement
echo $PYTHONPATH
dans votre terminal (pas dans votre interpréteur python !).
Ajouter un nouveau chemin à votre PYTHONPATH
Pour ajouter un nouveau chemin à votre PYTHONPATH, cela dépendra de votre shell (j'ai utilisé ci-après bash shell ). Pour obtenir votre shell, entrez simplement
echo $SHELL
donne par exemple
/bin/bash
Pour ajouter temporairement un nouveau chemin dans votre PYTHONPATH :
export PYTHONPATH="/Users/John/github_projects"
Pour vérifier si le chemin a bien été ajouté:
echo $PYTHONPATH
il devrait y avoir maintenant :
"/Users/John/github_projects"
et vous pouvez maintenant démarrer python (dans la même fenêtre que vous avez entré "export PYTHONPATH="/Users/John/github_projects") et essayer d'importer votre module :
>>> import project_01
Une autre solution pour rendre cela plus permanent, il suffit d'ouvrir le
.bash_profile
fichier et d'ajouter la ligne suivante :
export PYTHONPATH="/Users/John/github_projects"
Il ajoutera alors automatiquement "/Users/John/github_projects" à votre PYTHONPATH chaque fois que vous ouvrirez une nouvelle fenêtre dans votre terminal.
Recharger un module python
Note: un autre outil intéressant est de pouvoir recharger votre module python (>3.4) :
import importlib
importlib.reload(module)
Vous n'avez donc pas besoin de redémarrer python à chaque fois que vous apportez des modifications à votre module python, par exemple "project_01". Il vous suffit de recharger celui-ci:
import importlib
importlib.reload(project_01)