Il existe plusieurs façons de démarrer des programmes Python, qui diffèrent par la valeur de sys.path, qui est le chemin de recherche du module.
Voir la version v3.8.2
Mettre tout simplement
--Si vous spécifiez directement un fichier, etc., le répertoire associé sera au début de sys.path
--Si un module est spécifié avec -m, le répertoire courant devient le premier élément.
Le résumé est le suivant. L'auteur ne savait pas qu'il pouvait lancer des répertoires (packages) et des fichiers .zip.
pythonArguments après | 
Ce qui est fait | Son nom de module(__name__) | 
sys.pathPremier élément de | 
|---|---|---|---|
<.fichier py> | 
Ce fichier | __main__ | 
<Le répertoire où se trouve le fichier> | 
<annuaire> | 
<annuaire>/__main__.py | 
__main__ | 
<annuaire> | 
<.fichier zip> | 
.fichier zipÀ l'intérieur__main__.py | 
__main__ | 
<.fichier zip> | 
-m <module> | 
<module>.py | 
__main__ | 
Répertoire actuel(Chaîne vide) | 
-m <paquet> | 
<paquet>/__main__.py | 
__main__ | 
Répertoire actuel | 
-c <commander> | 
__main__ | 
Répertoire actuel | |
- | 
Script passé comme entrée standard | __main__ | 
Répertoire actuel | 
-ISi vous spécifiez -I dans les options de démarrage, vous avez spécifié -E -s et l'interpréteur démarre en ** mode isolé **.
Pour l'instant, le ** premier élément ci-dessus n'est pas ajouté à sys.path (en raison de l'influence de -s). ** **
Donc, fondamentalement, vous ne pouvez (absolument) importer que les modules installés avec pip install.
Notez que même le module à côté du script d'exécution ne peut pas être importé [^ 1].
[^ 1]: Le module à côté du script d'exécution ne peut pas être importé par rapport à celui-ci. Cela est dû au fait que l'importation relative depuis le module __main__ n'est pas possible.
Recommended Posts