Lancer automatiquement le debugger à la levée d’une exception Python


Si vous avez bien lu l’article sur pdb, vous devez être accroc à set_trace() pour debugger vos programmes.

Oui mais quand votre programme plante, il faut lancer l’éditeur, trouver la ligne, faire un try/except, et en plus ramer si c’est dans une boucle.

On peut faire mieux. Si vous avez ipdb et ipython installés (et si ce n’est pas le cas, un pip install les deux car on ne peut pas vivre sans), au lieu de lancer votre script ainsi:

python script.py

Lancez le ainsi:

ipython --pdb script.py

Et à la première exception, votre shell va directement s’ouvrir en mode debugger à la bonne ligne.

C’est pas merveilleux, ça ?

5 thoughts on “Lancer automatiquement le debugger à la levée d’une exception Python

  • nerbrume

    Ou, si vous avez lancé votre truc depuis ipython, utilisez “post-mortem” :
    pdb.pm()
    (à utiliser JUSTE après la dernière erreur)

  • Syl

    Et encore un gain de temps!
    Merci les mecs! Et merci aux développeurs d’ipython!

    Petite idée en passant: Vu que votre site regorge de petites astuces comme celles-ci et d’autres petits bouts de codes bien pratiques, ça pourrait être intéressant d’ouvrir une section “snippets”, ou bien “tips&tricks” sur S&M!

    Les lecteurs pourraient vous filer un coup de main pour les repérer, ou pour vous en fournir directement.

    Bon, je sais que vous avez déjà du boulot, c’est juste une idée comme ça…

  • Sam Post author

    C’est une bonne idée syl, et franchement l’envie de faire un peu plus qu’un blog me trotte dans la tête depuis quelques temps. Comme tu le dis, le temps pour le faire est le facteur qui sonne deux fois le plus important.

  • Syl

    Ça pourrait se construire tout tranquillement, en comptant beaucoup sur la participation des lecteurs, via un bouton comme celui en haut à droite…ou bien un lien “Signaler un bout de code qui déboite” en bas d’articles.

    Ça vous faciliterait un peu la tâche…mais bon, ça urge pas, vous avez déjà un moteur de recherche qui tourne plutôt bien, et avec des outils comme “Launchy” (pour Win/Linux) ou “QuickSilver” (pour Mac), ça reste vachement simple de retrouver une info sur S&M.

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.