Debugger Python à distance avec rpdb


Vous aimez pdb parce que c’est cool. Et vous adorez pdbpp parce que c’est trop cool.

Mais parfois vous n’avez pas accès à une console sur votre process : il est derrière un nginx, ou même sur une machine distante.

rpdb vient résoudre ce problème en lançant un serveur telnet qui donne accès à votre debugger.

pip install rpdb

Puis :

import rpdb; rpdb.set_trace()

Et après vous prenez votre client telnet favoris, et vous accédez à votre débugger :

telnet 127.0.0.1 4444

Bien entendu, si vous êtes à distance, remplacez 127.0.0.1 par l’ip de la machine. Le port est configurable également :

import rpdb
debugger = rpdb.Rpdb(port=12345)
debugger.set_trace()

Et derrière, ça lance pdb, donc pdbpp est lancé automatiquement si il est installé. Joie.

7 thoughts on “Debugger Python à distance avec rpdb

  • Namas

    Hello, quel est l’intêret par rapport à configurer une connection ssh sur le serveur?

    Où alors j’ai loupé qqch?

  • Sam Post author

    Le fait d’avoir SSH ne veut pas dire que tu as accès au process dans la console. Si ton processus est lancé via supervisor, daemonisé, ou est un sous worker d’un truc, tu n’a pas de console.

  • Block

    En parlant de workers, celery fournit rdb qui fait la même chose. J’ai toujours trouvé dommage qu’ils ne l’aient pas sorti de celery pour en faire un truc standalone, C’est une bonne chose que quelqu’un y ait pensé.

  • Sam Post author

    Est-ce que le titre de l’article est “ne pas pas utiliser winpdb et rpdb2” ?

    Si je poste un article sur Vi, tu vas me proposer emacs ?

Comments are closed.

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