- Les modules Python peuvent être utilisés comme outils en ligne de commande
- Par exemple, exécuter le module
webbrowser depuis la ligne de commande permet d’ouvrir l’URL donnée dans le navigateur web par défaut
- La bibliothèque standard de Python inclut de nombreux hybrides module-script de ce type
- Exécuter Python avec l’option
-m lance le module Python indiqué comme s’il s’agissait d’un script
- Certains modules effectuent une action au moment de l’import ; par exemple, le module
antigravity ouvre la BD XKCD dans un navigateur web. L’exécuter en ligne de commande produit le même effet qu’importer le module
- On appelle cela un "import side effect", que la plupart des modules évitent. Les modules Easter egg comme
antigravity font exception
- Les modules qui évitent les import side effects utilisent la variable
__name__ pour avoir un comportement différent selon qu’ils sont importés comme module ou exécutés comme script
Outils généraux utiles en ligne de commande
python -m http.server : démarrer un serveur web simple
python -m webbrowser : lancer un navigateur web
python -m json.tool : formater joliment des données JSON
python -m calendar : afficher un calendrier en ligne de commande
Outils particulièrement utiles sous Windows
python3.12 -m uuid : similaire à l’utilitaire CLI uuidgen
python3.12 -m sqlite3 : similaire à l’utilitaire CLI sqlite3
python -m zipfile : similaire aux utilitaires CLI zip et unzip
python -m gzip : similaire aux utilitaires CLI gzip et gunzip
python -m tarfile : similaire à l’utilitaire CLI tar
Outils utiles pour travailler avec du code Python
python -m pip : installer des packages Python tiers
python -m venv : créer un environnement virtuel
python -m pdb : lancer le débogueur Python
python -m unittest : exécuter des tests unittest
python -m pydoc : consulter la documentation
python -m doctest : exécuter les doctests d’un fichier donné
python -m ensurepip : installer pip
python -m idlelib : lancer le REPL graphique IDLE
python -m zipapp : convertir un module Python en ZIP exécutable
python -m compileall : précompiler des fichiers Python en bytecode
Outils d’analyse de code Python
python -m tokenize : découper un module Python en tokens
python -m ast : afficher l’arbre syntaxique abstrait du code
python -m dis : désassembler du code Python en bytecode
python -m inspect : inspecter le code source d’objets Python
python -m pyclbr : afficher un aperçu des objets d’un module
Scripts amusants servant d’Easter eggs Python
python -m __hello__ : affiche "Hello world!"
python -m this : affiche The Zen of Python (PEP 20)
python -m antigravity : ouvre dans le navigateur web la BD XKCD n°353 sur Python
python -m turtledemo : montre des démos de différents dessins réalisables avec le module turtle
Autres outils liés à Python
python -m asyncio : lancer un REPL Python avec prise en charge d’asyncio
python -m cProfile : profiler un programme Python
python -m pstats : afficher les statistiques de profil générées par cProfile
python -m pickle : afficher le contenu d’un fichier pickle (haut niveau)
python -m pickletools : désassembler un fichier pickle (bas niveau)
Outils moins utiles
python -m timeit : mesurer le temps d’exécution d’une expression Python
python -m site : afficher les informations "site" de Python
python -m sysconfig : afficher les détails de configuration de Python
python -m platform : afficher les informations sur la plateforme actuelle
python -m mimetypes : afficher les informations de mimetype/extension d’un fichier
python -m quopri : encoder/décoder des données d’e-mail brutes
python -m filecmp : comparer le contenu de deux répertoires
python -m tabnanny : vérifier le mélange de tabulations et d’espaces dans des fichiers Python
2 commentaires
Waouh, il y a plus de bonnes fonctionnalités que je ne le pensais, c’est top.
Je me souviens être intervenu sur un serveur Linux en environnement isolé après y avoir importé un fichier zip, et comme la commande
unzipn’était pas disponible, j’avais décompressé l’archive avec le modulepython -m zipfileavant de continuer.