Différence de sys.path en fonction du démarrage de Python (v3.8.2)

Aperçu

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.

Les références

Voir la version v3.8.2

Détails

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

Précautions lors de l'utilisation de -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

Différence de sys.path en fonction du démarrage de Python (v3.8.2)
En Python, changez le comportement de la méthode en fonction de la façon dont elle est appelée
Comment est le progrès? Continuons le boom ?? en Python
Comment utiliser is et == en Python
Comment tester cette exception est déclenchée dans python unittest
Test.py n'est pas reflété sur le serveur Web dans Python3.
Comment utiliser __dict__ en Python
Comment développer en Python
Comment installer OpenCV sur Cloud9 et l'exécuter en Python
Comment déterminer qu'une clé croisée a été entrée dans Python3
Pour utiliser python, mettez pyenv sur macOS avec PyCall
Comment utiliser l'astérisque (*) en Python. C'est peut-être tout? ..
Différence de vitesse d'exécution en fonction de la façon d'écrire la fonction Cython
J'ai fait beaucoup de recherches sur la façon dont Python est exécuté
Premiers pas avec Python responder v2
Différence entre == et est en python
Utilisez le tissu tel quel en python (fabric3)
Comment collecter des images en Python
Python est UnicodeEncodeError dans le menu fixe CodeBox
Comment utiliser SQLite en Python
Comment démarrer avec Python
Comment utiliser Mysql avec python
Il n'y a pas de commutateur en python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Python in est aussi un opérateur
Premiers pas avec Python 3.8 sous Windows
Comment gérer le japonais avec Python
Démarrez avec Python avec Blender
Différence d'authenticité entre Python et JavaScript
[Introduction à Python] Comment utiliser la classe en Python?
Différences entre Ruby et Python dans la portée
"<" En python> pack ("<L", ...) est un peu todian
Comment lire pydoc sur l'interpréteur python
Comment définir dynamiquement des variables en Python
Comment faire R chartr () en Python
Trouver des fichiers comme Linux Find en Python
[Python] [pandas] Comment pd.DataFrame (). T est-il implémenté?
[Kivy] Comment installer Kivy sur Windows [Python]
Note de nfc.ContactlessFrontend () de nfcpy de python
Inject est recommandé pour DDD en Python
2017-03-17 CentOS 6.8> Python 3.6.0 introduit / démarré / arrêté dans virutalenv
[Itertools.permutations] Comment créer une séquence en Python
Différences entre la syntaxe Python et Java
Comment utiliser BigQuery en Python
Exécutez AzureKinect en Python la veille de Noël.
Comment obtenir stacktrace en python
Comment effacer Python 2.x sur Mac.
Comment afficher la table quatre-vingt-dix-neuf en python
Comment extraire une zone de polygone en Python
Qu'est-ce que "mahjong" dans la bibliothèque Python? ??
Mémorandum sur l'utilisation du python gremlin
Comment vérifier la version d'opencv avec python
Hash en Perl est un dictionnaire en Python
Commençons avec TopCoder en Python (version 2020)
Comment changer de version de Python dans cloud9
Comment régler le contraste de l'image en Python
Comment utiliser __slots__ dans la classe Python
Comment remplir dynamiquement des zéros avec Python