Outils pour utilisateurs

Outils du site


dev:python:debogage

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
dev:python:debogage [2016/10/21 15:32] – créée yoanndev:python:debogage [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1
Ligne 5: Ligne 5:
 ===== Outils d'analyse statique ==== ===== Outils d'analyse statique ====
  
-Analyse le script et détectent les anomalies+Analysent le script/module et détectent les anomalies
   * pylint   * pylint
   * pychecker   * pychecker
Ligne 11: Ligne 11:
   * pep8   * pep8
   * flake8   * flake8
 +  * mypy: outil standard d'analyse statique du typage
  
  
-pyflakes est un outil simple capable de détecter les erreurs de syntaxe, les faute de frappe dans les noms de variables, les imports manquants. Il peut être intégré à l'EDI.+===== 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
 +</code>
 +
 +==== Utilisation ====
 +
 +En ligne de commande, on peut invoquer pyflakes en passant en argument le nom du script à analyser:
 +
 +<code bash>
 +$ pyflakes ./mon_script.py
 +</code>
 +
 +===== Le module dis =====
 +
 +Le module **dis** permet de désassembler le bytecode Python.
 +
 +<code python>
 +>>> import dis 
 +>>> def a(): 
 +...     Union[int,str] 
 +...  
 +>>> dis.dis(a)
 +</code>
 +
 +Produira sur la sortie standard:
 +<file>
 +2             0 LOAD_GLOBAL              
 +0 (Union) 
 +              2 LOAD_GLOBAL              
 +1 (int) 
 +              4 LOAD_GLOBAL              
 +2 (str) 
 +              6 BUILD_TUPLE              
 +
 +              8 BINARY_SUBSCR 
 +             10 POP_TOP 
 +             12 LOAD_CONST               
 +0 (None) 
 +             14 RETURN_VALUE
 +</file>
 +       
 +===== 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
 +
 +<code bash>
 +$ python -m pdb ./mon_script.py 
 +</code>
 +
 +
 +==== pdb en mode interactif ====
 +Quelques commandes usuelles:
 +
 +^ Commande ^ Description                         |
 +| **l**    | (**l**ist) affiche le code              |
 +| **b**    | (**b**reak point) positionne un point d'arret sur une instruction ex: b 6 |
 +| **c**    | (**c**ontinue), reprend l’exécution du programme jusqu’à un point d’arrêt, une erreur ou la fin. |
 +| **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://python-scientific-lecture-notes.developpez.com/tutoriel/notes-cours/python-debugging-code/   * http://python-scientific-lecture-notes.developpez.com/tutoriel/notes-cours/python-debugging-code/
dev/python/debogage.1477063957.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)