Maison > développement back-end > Tutoriel Python > Que fait le commutateur « -m » en Python ?

Que fait le commutateur « -m » en Python ?

Barbara Streisand
Libérer: 2024-11-29 03:15:10
original
749 Les gens l'ont consulté

What Does the `-m` Switch Do in Python?

Quel est le rôle du commutateur -m ?

Introduction

Le -m L'option étend les capacités de Python, permettant une polyvalence dans l'exécution et le développement de modules. Il remplit trois rôles principaux :

1. Exécution du module par nom du module

python -m offre une alternative à python pour exécuter des modules. Il s'appuie sur la capacité de Python à mapper les noms de modules sur les noms de fichiers, ce qui le rend pratique pour exécuter des modules sans connaître leur emplacement exact.

2. Résolution améliorée du chemin du module

Lors de l'utilisation de -m, le répertoire de travail actuel est ajouté à sys.path. Cela permet d'importer des modules depuis le répertoire actuel, permettant l'exécution de packages locaux sans avoir besoin d'installation.

3. Prise en charge des importations relatives et absolues

-m gère les importations absolues et relatives lors de l'exécution de modules. Cela permet aux développeurs d'utiliser les importations de la même manière, qu'un module soit exécuté à partir de la ligne de commande ou via une instruction d'importation.

Développement historique

Initialement, - m ne prend en charge que les noms de modules de niveau supérieur. Avec PEP 338, il a été étendu pour inclure les sous-modules et l'initialisation du package parent. Enfin, PEP 366 a introduit la prise en charge des importations relatives explicites.

Cas d'utilisation

-m excelle dans deux scénarios :

  • Exécution de modules avec noms de fichiers inconnus (par exemple, bibliothèque standard ou modules tiers).
  • Exécuter des packages locaux avec une valeur absolue ou relative importations sans installation (obtenues en ajoutant le répertoire actuel à sys.path).

Limitations

-m a une limitation importante : il ne peut exécuter que Python modules de code (*.py). Les modules de code compilés C ne s'exécuteront pas correctement en utilisant -m.

Comparaisons avec d'autres méthodes d'exécution de modules

Instruction d'importationActuel répertoire tr>
Méthode d'exécution Modification de sys.path
Execution Method sys.path Modification name Setting package Setting init Evaluation main Evaluation
Import Statement No change Absolute modulename Parent package Yes (packages only) No (packages only)
Command Line with Filename Final directory of filename '__main__' None No (all modules) Yes (package modules)
Command Line with Modulename (-m) Current directory '__main__' Parent package Yes (packages only) Yes (package modules)
nomParamètre
package Paramètre initÉvaluation mainÉvaluation
Aucun changement Nom de module absolu Package parent Oui (packages uniquement) Non (forfaits uniquement)
Ligne de commande avec nom de fichier Répertoire final du nom de fichier '__main__' Aucun Non (tous les modules) Oui (modules du package)
Ligne de commande avec nom de module (-m)'__main__' Package parent Oui (packages uniquement) Oui (modules du package)

Conclusion

Le commutateur -m offre aux développeurs un outil polyvalent pour l'exécution et le développement de modules. Il offre une flexibilité dans la recherche de modules, prend en charge la résolution de chemin dynamique et facilite l'exécution transparente de code Python complexe.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal