l'ajout de répertoire sys.chemin /PYTHONPATH
Je suis en train d'importer un module à partir d'un répertoire particulier.
Le problème est que si j'utilise sys.path.append(mod_directory)
pour ajouter le chemin d'accès, puis ouvrez l'interpréteur python, le répertoire mod_directory
est ajouté à la fin de la liste sys.chemin d'accès. Si j'exporte le PYTHONPATH
variable avant l'ouverture de l'interpréteur python, le répertoire est ajouté au début de la liste. Dans ce dernier cas, je peux importer le module mais dans le premier cas, je ne peux pas.
Quelqu'un peut-il expliquer pourquoi ce qui se passe et me donner une solution pour ajouter de la mod_directory
le début, à l'intérieur de un script python ?
- J'ai essayé
site
module.
Vous devez vous connecter pour publier un commentaire.
Ce travail est documenté. Tout les chemins spécifiés dans
PYTHONPATH
sont documentés en tant que normalement après le répertoire de travail, mais avant de la norme interprète fourni par les chemins.sys.path.append()
ajoute le chemin d'accès existant. Voir ici et ici. Si vous souhaitez un répertoire particulier de venir en premier, il suffit de l'insérer à la tête de sys.chemin d'accès:Cela dit, il y a généralement de meilleures façons de gérer les importations que ce soit à l'aide de
PYTHONPATH
ou de la manipulation d'sys.path
directement. Voir, par exemple, les réponses à cette question.sys.path
est zéro indexés comme toute liste, il devrait donc êtresys.path.insert(0, '/path/to/mod_directory')
Vous pouvez utiliser:
Comme à moi, j'ai besoin de café pour mon python path. Je peux ajouter c'est le chemin du fichier
/home/xy/.bashrc
par ajouterexport PYTHONPATH=/home/xy/caffe-master/python:$PYTHONPATH
.à mon
/home/xy/.bashrc
fichier.Mais quand j'utilise pycharm, le chemin est toujours pas en.
Afin que je puisse ajouter un chemin d'accès à
PYTHONPATH
variable, par exécuter -> modifier la Configuration.Modification temporaire de l'dirs fonctionne bien pour l'importation:
Lors de l'exécution d'un script Python à partir de Powershell sous Windows, cela devrait fonctionner: