:orphan: |rss_image| **2018-04 - 1/1** :ref:`Blog ` .. |rss_image| image:: feed-icon-16x16.png :target: ../_downloads/rss.xml :alt: RSS ---- .. index:: 2018-04 .. _ap-month-2018-04-0: 2018-04 - 1/1 +++++++++++++ .. blogpostagg:: :title: Debugger Python :date: 2018-04-05 :keywords: python,classes :categories: debug :rawfile: 2018/2018-04-05_debug.rst L'exécution pas à pas d'un programme :epkg:`Python` permet souvent de trouver facilement l'erreur caché dans un programme. Cette astuce est néanmoins compliquée à mettre en oeuvre dans deux cas. Le premier lorsque l'erreur se produit dans un module implémentée en :epkg:`C++`. C'est assez rare pour les modules standard comme :epkg:`pandas` ou :epkg:`numpy` mais néanmoins possible. Il n'y a pas d'options pratique depuis :epkg:`Python` si ce n'est Visual Studio : `Débogage conjoint de Python et de C++ `_. Le second cas difficile avec un débugger survient lorsque l'erreur se produit dans un programme après plusieurs minutes d'exécution ou à la dernière itération d'une boucle à un million de tours. Dans ces cas-là, le seul recours est souvent d'utiliser la fonction ``print`` à des endroits bien choisis. Parfois, on souhaite détecter que le même nombre d'objets à été créés puis détruits, parfois, on souhaite tomber sur la donnée qui fait exploser la mémoire. Le module `pympler `_ propose quelques outils pour ces deux méthodes de diagnostic. Quoiqu'il en soit, après une telle aventure, vous serez probablement incité à écrire des petites fonctions facilement testables séparéments plutôt que de grandes fonctions terriblement compliquées à tester. ---- |rss_image| **2018-04 - 1/1** :ref:`2017-07 (1) ` :ref:`2018-03 (1) ` :ref:`2018-04 (1) ` :ref:`2018-10 (1) ` :ref:`2020-10 (1) `