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.
python Arguments après |
Ce qui est fait | Son nom de module(__name__ ) |
sys.path Premier é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 |
-I
Si 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