Maison >développement back-end >Tutoriel Python >Quelles sont les différences d'invocation lors de l'exécution de code Python avec -m ?
Comprendre les différences d'invocation dans l'exécution de code Python avec -m
L'interpréteur Python fournit l'option -m, qui vous permet d'exécuter des modules de bibliothèque en tant que scripts dans le module __main__. Cette approche diffère de l'exécution directe de scripts sans l'option -m, ce qui entraîne certaines distinctions et implications.
Différences pratiques
Lors de l'utilisation de -m, Python gère les packages différemment. Si vous essayez d'exécuter un package sans -m, l'interpréteur le traitera comme un script normal. En revanche, avec -m, les packages peuvent être importés et les importations relatives considéreront correctement le package comme point de départ.
Par exemple, considérons le code suivant dans a.py :
<code class="py">if __name__ == "__main__": print(__package__) print(__name__)</code>
L'exécution de python a.py donne :
None __main__
Alors que l'utilisation de python -m a donne :
"" __main__
Ici, la variable __package__ est vide dans le premier cas car le fichier est exécuté comme un script. Avec -m, __package__ est défini sur une chaîne vide puisque le module n'est pas dans un package.
Explication de package et nom
Pour __package__ :
Pour __name__ :
Implications pour l'exécution du package
Exécution d'un package en tant que script avec -m nécessite un module __main__.py dans le package. Ce module sert de point d'entrée lorsque Python exécute le package à l'aide du commutateur -m.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!