Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
dev:python:debogage [2016/10/21 15:32] – créée yoann | dev:python:debogage [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
===== Outils d' | ===== Outils d' | ||
- | Analyse | + | Analysent |
* pylint | * pylint | ||
* pychecker | * pychecker | ||
Ligne 11: | Ligne 11: | ||
* pep8 | * pep8 | ||
* flake8 | * flake8 | ||
+ | * mypy: outil standard d' | ||
- | pyflakes | + | ===== pyflakes |
+ | **pyflakes** est un outil simple capable de détecter les erreurs de syntaxe, les fautes de frappe notamment dans les noms de variables, les imports manquants ou inutilisés. Il peut être intégré à l'EDI notamment à Vim :) | ||
+ | |||
+ | ==== Installation ===== | ||
+ | |||
+ | Dans son environnement virtuel python ou sur le système local: | ||
+ | |||
+ | <code bash> | ||
+ | $ pip install pyflakes | ||
+ | </ | ||
+ | |||
+ | ==== Utilisation ==== | ||
+ | |||
+ | En ligne de commande, on peut invoquer pyflakes en passant en argument le nom du script à analyser: | ||
+ | |||
+ | <code bash> | ||
+ | $ pyflakes ./ | ||
+ | </ | ||
+ | |||
+ | ===== Le module dis ===== | ||
+ | |||
+ | Le module **dis** permet de désassembler le bytecode Python. | ||
+ | |||
+ | <code python> | ||
+ | >>> | ||
+ | >>> | ||
+ | ... | ||
+ | ... | ||
+ | >>> | ||
+ | </ | ||
+ | |||
+ | Produira sur la sortie standard: | ||
+ | < | ||
+ | 2 0 LOAD_GLOBAL | ||
+ | 0 (Union) | ||
+ | 2 LOAD_GLOBAL | ||
+ | 1 (int) | ||
+ | 4 LOAD_GLOBAL | ||
+ | 2 (str) | ||
+ | 6 BUILD_TUPLE | ||
+ | 2 | ||
+ | 8 BINARY_SUBSCR | ||
+ | 10 POP_TOP | ||
+ | 12 LOAD_CONST | ||
+ | 0 (None) | ||
+ | 14 RETURN_VALUE | ||
+ | </ | ||
+ | |||
+ | ===== Le débogueur python ===== | ||
+ | |||
+ | Plusieurs manières d' | ||
+ | * En mode interactif, une fois l’exception levée il peut être invoqué pour remonter la pile d' | ||
+ | * Lors du lancement d'un script python un argument permet de spécifier un lancement du débogueur | ||
+ | rencontrée ou invoqué | ||
+ | |||
+ | ==== pdb avec un script ==== | ||
+ | |||
+ | si c'est un script on peut lancer python en mode debug | ||
+ | |||
+ | <code bash> | ||
+ | $ python -m pdb ./ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== pdb en mode interactif ==== | ||
+ | Quelques commandes usuelles: | ||
+ | |||
+ | ^ Commande ^ Description | ||
+ | | **l** | (**l**ist) affiche le code | | ||
+ | | **b** | (**b**reak point) positionne un point d' | ||
+ | | **c** | (**c**ontinue), | ||
+ | | **n** | (**n**ext) exécute la prochaine instruction | | ||
+ | | **s** | (**s**tep) exécute la prochaine instruction | ||
+ | |||
+ | La liste des commandes est accessible via **h** ou **help** | ||
===== Références ===== | ===== Références ===== | ||
* http:// | * http:// |