Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Python debugger

243 vues

Publié le

Introduction au debugging Python

* S'appuyer sur les exceptions
* Commandes principales de pdb
* pylint & pyflakes pour analyser le code avant exécution
* git bisect pour trouver le commit de votre bug

Publié dans : Ingénierie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Python debugger

  1. 1. PYTHON DEBUGGER Python Meetup Bordeaux – Node 2016-03-09 Damien Garaud / @jazzydag
  2. 2. Y'A UN BUG ?
  3. 3. SCÈNE DE CRIME Suspicion Où Motifs (raison) Résoudre (corriger)
  4. 4. QUAND Lors d'un test... ou d'un run Du code à vous... ou pas
  5. 5. Y'A LE BON, ET LE MAUVAIS Celui qui saute aux yeux, vous avez une exception Celui qui ne se voit pas, mais vous savez qu'y a un blème
  6. 6. LES EXCEPTIONS SONT VOS AMIES NameError, SyntaxError et ImportError TypeError, ValueError, IndexError, KeyError AttributeError, IOError, MemoryError
  7. 7. COMMENT ? Le 1er jour vient le print() Exceptions ou point d'arrêt Examiner la pile d'appels avec un IDE ou en mode "debug"
  8. 8. EXEMPLE import pandas as pd def main(fname): data = read_data(fname) result = data_processing(data) return result def read_data(fname): data = pd.read_csv(fname) return data def data_processing(data): return data.query("age <= 60") if __name__ == '__main__': df = main("data.csv")
  9. 9. PILE D'APPELS +------------------+ | main() | | | +------------------+ +------------------+ | read_data() | | | +------------------+ +------------------+ | processing() | | | +------------------+ Comme une pile en faite
  10. 10. LANCER PYTHON EN MODE DEBUG python -m pdb script.py /path/to/script.py (Pdb) type command here : Python debuggeurpdb
  11. 11. PRINCIPALES COMMANDES h(elp) c(ontinue) l(ist) s(tep) n(ext) u(p) a(rgs) q(uit)
  12. 12. IPYTHON : lance pdb dans IPython : commande magique IPython ipdb %pdb
  13. 13. POINT D'ARRÊT S'arrêter où l'on souhaite import pdb; pdb.set_trace() import ipdb; ipdb.set_trace() On doit modifier le code
  14. 14. POINT D'ARRÊT Dans le débuggeur breakpoint 1. On lance python -m pdb 2. Imports nécessaires 3. b funcname
  15. 15. AVANT L'EXÉCUTION Outils d'analyse pylint pyflakes
  16. 16. MAIS ÇA MARCHAIT AVANT La semaine dernière, ça marchait, je t'assure Gestionnaire de version à la rescousse git bisect --help
  17. 17. UNE CHOSE À RETENIR Faites des tests unitaires
  18. 18. MERCI !

×