L'importation défini par l'utilisateur des modules en python à partir d'un répertoire
J'essaie d'importer un module que j'ai écrit en python qui se contente d'afficher une liste contenant des nombres. La question que je vais avoir, c'est que je veux être en mesure de les importer à partir d'un répertoire distinct, mais les réponses que j'ai lu jusqu'à présent ne semblent pas travailler pour ma situation.
Par exemple, étant donné que je souhaite importer printnumbers.py à partir d'un répertoire dans le dossier mes documents, je suis censé mettre en œuvre les suivantes:
import sys
sys.path.append('/home/jake/Documents')
import printnumbers.py
Ce snipit de code dans une "erreur d'Importation" en me disant que le module spécifié n'existe pas. Je ne suis pas sûr de savoir exactement où de procéder à partir d'ici, j'ai vérifié plusieurs fois pour vérifier que c'est la bonne orthographe pour le chemin d'accès ainsi que pour le nom du module. Je suis encore à essayer de comprendre exactement ce que l'ajout de la "sys.chemin d'accès". À partir de ce que je comprends, c'est de raconter le programme de recherche pour les modules dans le répertoire?
Merci pour toute personne qui répond à mes plutôt novice question. Je suis à la recherche d'une meilleure compréhension de ce que la documentation python n'est pas de fournir à mon état d'esprit.
OriginalL'auteur Ragecoder | 2016-05-30
Vous devez vous connecter pour publier un commentaire.
Lorsque le fichier est
printnumbers.py
, le module est appelé àprintnumbers
(sans le.py
). Par conséquent, l'utilisationajoute
'/home/jake/Documents'
à la fin desys.path
. Les répertoires listés danssys.path
sont recherchés (dans l'ordre de la liste) chaque fois qu'une instruction import causes Python à la recherche d'un module. (Déjà importé des modules sont mis en cache danssys.modules
, si Python n'est pas toujours nécessaire de recherchersys.path
répertoires pour importer un module...)Donc, si vous avez un fichier
/home/jake/Documents/printnumbers.py
, puisimport printnumbers
sera la cause de Python pour importer la mesure où il n'est pas d'autre fichier nomméprintnumbers.py
dans un répertoire listé danssys.path
à l'avance de/home/jake/Documents/
.Noter que l'injection de répertoires dans
sys.path
n'est pas la façon habituelle de configurer Python à la recherche pour les modules. Habituellement, il est préférable d'ajouter/home/jake/Documents
à votre variable d'environnement PYTHONPATH.sys.path
incluent automatiquement les répertoires listés dans la variable d'environnement PYTHONPATH.Qui fait beaucoup de sens aujourd'hui. Pourquoi ne l'importation échoue lors de l'ajout de l'extension? Je suis une sorte de curieux maintenant. Est-ce à dire que je pourrais avoir un fichier sans un type qui sont importés en tant que module python?
Non, vous ne pouvait pas importer un .txt ou .jpg comme un module python. Python à l'arrière-plan permettra de déterminer si le nom du module dans le répertoire courant est de type .py et de l'importer en conséquence. de tenter d'importer quoi que ce soit d'autre génère une erreur d'importation.
Les suffixes des modules peut se terminer en est dépend de la plateforme. En outre
.py
, des modules (au moins sur certaines plates-formes peuvent mettre fin à.pyc
, ou.pyw
ou.so
,.pyd
,.pyo
ou.dll
.OriginalL'auteur unutbu
OriginalL'auteur Amit Karnik