Outils pour utilisateurs

Outils du site


dev:python:debogage

Outils de débogage avec python

Outils d'analyse statique

Analysent le script/module et détectent les anomalies

  • pylint
  • pychecker
  • pyflakes
  • pep8
  • flake8
  • mypy: outil standard d'analyse statique du typage

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:

$ pip install pyflakes

Utilisation

En ligne de commande, on peut invoquer pyflakes en passant en argument le nom du script à analyser:

$ pyflakes ./mon_script.py

Le module dis

Le module dis permet de désassembler le bytecode Python.

>>> import dis 
>>> def a(): 
...     Union[int,str] 
...  
>>> dis.dis(a)

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'utiliser le débogueur:

  • En mode interactif, une fois l’exception levée il peut être invoqué pour remonter la pile d'appels
  • 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

$ python -m pdb ./mon_script.py 

pdb en mode interactif

Quelques commandes usuelles:

Commande Description
l (list) affiche le code
b (break point) positionne un point d'arret sur une instruction ex: b 6
c (continue), reprend l’exécution du programme jusqu’à un point d’arrêt, une erreur ou la fin.
n (next) exécute la prochaine instruction
s (step) exécute la prochaine instruction

La liste des commandes est accessible via h ou help

Références

dev/python/debogage.txt · Dernière modification : 2021/02/01 21:51 de 127.0.0.1