La version de Python que j'utilise est la 3.6.
Si vous trouvez des erreurs, veuillez nous en informer dans les commentaires.
Supposons que vous souhaitiez charger vos propres modules sous `lib``` à partir de
`scripts / execute.py``` avec une telle structure de répertoires.
.
├──scripts
│ └── execute.py
└──lib
└── my_module.py
Au départ, j'ai écrit execute.py
comme suit et j'ai essayé de le gérer en ajoutant un fichier à
sys.path```.
import pandas as pd
import sys
sys.path.append('../lib')
import my_module
# (Ce qui suit est omis)
Cependant, il s'agit du standard de codage Python PEP8 ([traduction japonaise](https: //pep8-ja.readthedocs. io / ja / latest / #)) est violé, donc si vous utilisez flake8 etc., le Tsukkomi suivant sera entré.
E402 module level import not at top of file
Citons la partie pertinente de la traduction japonaise.
L'instruction import doit toujours être placée au début du fichier, immédiatement après le commentaire du module ou la docstring, et avant la variable globale ou la définition de la constante du module.
Juste j'avais une question sur le même effet sur Stackoverflow.
Plusieurs méthodes ont été répondues à ce sujet, et la méthode d'ajout du répertoire à la variable d'environnement `` PYTHONPATH '' semble être la solution essentielle. (Le lien suivant a été introduit)
(Bien que les méthodes suivantes aient également été introduites, honnêtement, cela me semble être un hack rusé.)
De plus, le site de questions japonais teratail avait des réponses à des questions similaires. La réponse vient de M. Shimizukawa, un committer du Sphinx, elle semble donc hautement crédible.
L'ajustement de sys.path dans le script n'est pas recommandé. Si le répertoire dans lequel vous souhaitez utiliser la bibliothèque est fixé à divers endroits et que vous souhaitez importer cette bibliothèque, il existe un moyen de définir la variable d'environnement PYTHONPATH.
J'ai donc ajouté le répertoire lib '' à PYTHONPATH et je l'ai traité. Si vous l'utilisez à chaque fois, écrivez-le dans
`` bash_profile```.
export PYTHONPATH="${PYTHONPATH}:/chemin complet du répertoire lib/lib"
Cela nous a permis de supprimer la description associée `` sys.path``` de
`ʻexecute.py```.
import pandas as pd
import my_module
# (Ce qui suit est omis)
Ce n'est pas le sujet principal, mais j'étais curieux de savoir ce qui se passerait si le nom de la bibliothèque et le nom de mon propre module étaient au bâton.
Dans ce cas, lisez le document officiel. Il y a la description suivante dans le tutoriel officiel Python.
Lors de l'importation d'un module nommé spam, l'interpréteur recherche d'abord un module intégré portant ce nom. S'il n'est pas trouvé, recherchez un fichier nommé spam.py dans la liste des répertoires de sys.path. sys.path est initialisé à l'emplacement suivant:
- Le répertoire contenant le script saisi (ou le répertoire courant si aucun fichier n'est spécifié).
Apparemment, celui de PYTHONPATH a la priorité. Même quand je l'ai essayé, ça s'est comporté comme ça.