J'essaye d'importer un module à partir d'un répertoire particulier.
Le problème est que si sys.path.append(mod_directory)
j'ajoute le chemin, puis que j'ouvre l'interpréteur python, le répertoire mod_directory
est ajouté à la fin de la liste sys.path. Si j'exporte la PYTHONPATH
variable avant d'ouvrir 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, je ne peux pas.
Quelqu'un peut-il expliquer pourquoi cela se produit et me donner une solution pour ajouter le mod_directory
au début, dans un script python?
python
mechanize
python-import
pythonpath
L'imagination sans mélange
la source
la source
site
module .Réponses:
Cela fonctionne comme documenté. Tous les chemins spécifiés dans
PYTHONPATH
sont documentés comme venant normalement après le répertoire de travail mais avant les chemins fournis par l'interpréteur standard.sys.path.append()
ajoute au chemin existant. Voir ici et ici . Si vous voulez qu'un répertoire particulier vienne en premier, insérez-le simplement en tête de sys.path:Cela dit, il existe généralement de meilleures façons de gérer les importations que d'utiliser
PYTHONPATH
ou de manipulersys.path
directement. Voir, par exemple, les réponses à cette question .la source
Vous pouvez utiliser:
la source
Quant à moi, j'ai besoin de caffe à mon chemin python. Je peux ajouter son chemin au fichier
/home/xy/.bashrc
en ajoutantexport PYTHONPATH=/home/xy/caffe-master/python:$PYTHONPATH
.à mon
/home/xy/.bashrc
dossier.Mais lorsque j'utilise pycharm, le chemin n'est toujours pas.
Je peux donc ajouter le chemin vers la
PYTHONPATH
variable, par exécution -> modifier la configuration.la source
La modification temporaire des répertoires fonctionne bien pour l'importation:
la source
Lors de l'exécution d'un script Python à partir de Powershell sous Windows, cela devrait fonctionner:
la source