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