Ajout permanent d'un chemin de fichier à sys.path en Python

97

J'ai eu un fichier appelé example_file.py, que je voulais utiliser à partir de divers autres fichiers, alors j'ai décidé d'ajouter example_file.pyà sys.pathet importer ce fichier dans un autre fichier pour utiliser le fichier. Pour ce faire, j'ai exécuté ce qui suit dans IPython.

import sys
sys.path
sys.path.append('/path/to/the/example_file.py')
print(sys.path)

Je pouvais voir le chemin que je venais d'ajouter, et quand j'ai essayé d'importer ce fichier à partir d'un autre chemin de répertoire comme celui-ci:

import example_file

cela fonctionnait très bien, mais une fois que je suis sorti d'IPython, que je l'ai entré à nouveau et que sys.pathj'ai vérifié , j'ai vu que le chemin que j'avais ajouté n'était pas présent, alors comment ajouter un chemin à sys.path de manière permanente en Python?

Shiva Krishna Bavandla
la source
3
Faites de votre code un package approprié, rendez-le facile à installer et soyez heureux pour le reste de votre vie (au lieu de bricoler). En dehors de cela: chaque documentation vous indique CLAIREMENT qu'il sys.path.append()accepte un répertoire contenant un fichier ET PAS UN SEUL CHEMIN VERS UN FICHIER.
Andreas Jung
duplication possible de l' ajout d'un dossier au chemin de Python de manière permanente
DhruvPathak
Ne confondez pas le chemin du système avec PYTHONPATH.
Burhan Khalid le

Réponses:

95

Il y a plusieurs façons. L'un des plus simples consiste à créer un my-paths.pthfichier (comme décrit ici ). Ceci est juste un fichier avec l'extension .pthque vous mettez dans votre site-packagesrépertoire système . Sur chaque ligne du fichier, vous mettez un nom de répertoire, vous pouvez donc y mettre une ligne avec /path/to/the/et il ajoutera ce répertoire au chemin.

Vous pouvez également utiliser la variable d'environnement PYTHONPATH, qui ressemble à la variable système PATH mais contient des répertoires auxquels seront ajoutés sys.path. Consultez la documentation .

Notez que quoi que vous fassiez, sys.pathcontient des répertoires et non des fichiers. Vous ne pouvez pas "ajouter un fichier à sys.path". Vous ajoutez toujours son répertoire et vous pouvez ensuite importer le fichier.

BrenBarn
la source
1
ok merci c'est bien j'ai ajouté mon répertoire qui se compose de fichier et son fonctionnement lorsque j'ai importé le fichier d'un autre emplacement, mais le problème lorsque je suis sorti d'ipython et à nouveau cherché pour vérifier mon chemin, il n'apparaît pas, Je ne veux pas le faire à chaque fois que j'ai entré le code, je veux ajouter le chemin du répertoire à sys.path de manière permanente, comment faire cela
Shiva Krishna Bavandla
@Kouripm: Votre commentaire suggère que vous n'avez pas réellement suivi ma suggestion, ni les suggestions du message en double lié ci-dessus.
BrenBarn
1
Le sitepackage était parfait.
Zeinab Abbasimazar
8
corrigé mon problème avec sys.path.append('C:\\python34\\lib\\site-packages')merci!
tylerlindell
Pour la postérité: le .pthfichier est ce que la documentation du module de site appelle a path configuration file. À noter sur le fichier de configuration du chemin:no check is made that the item refers to a directory rather than a file. No item is added to sys.path more than once. Blank lines and lines beginning with # are skipped. Lines starting with import (followed by space or tab) are executed.
Minh Tran
1

Cette façon a fonctionné pour moi:

en ajoutant le chemin que vous aimez:

export PYTHONPATH=$PYTHONPATH:/path/you/want/to/add

vérification: vous pouvez exécuter 'export' cmd et vérifier la sortie ou vous pouvez le vérifier en utilisant cette cmd:

python -c "import sys; print(sys.path)"
Pandous
la source