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:// | ||