web-dev-qa-db-fra.com

Débogage python programmes dans emacs

Comment déboguer les programmes python dans emacs?

J'utilise python-mode.el

Je reçois une référence comme

import pdb; pdb.set_trace();

mais je ne sais pas comment l'utiliser.

50
user90150

Tapez M-x cd Pour changer le répertoire à l'emplacement du programme que vous souhaitez déboguer. Tapez M-x pdb. Vous serez invité avec Run pdb (like this): pdb. Saisissez le nom du programme (par exemple test.py).

À l'invite (Pdb), Tapez help pour savoir comment utiliser pdb.

Vous pouvez également mettre

import pdb 
pdb.set_trace()

directement dans votre programme (par exemple test.py). Tapez maintenant M-x Shell Pour obtenir une invite du shell. Lorsque vous exécutez votre programme, vous serez transféré dans pdb au point où pdb.set_trace() est exécuté.

46
unutbu

Pour moi, je devais remplacer le "pdb" par défaut par

python -m pdb myscript.py
21
Ben

Le paquet realgud (disponible auprès de MELPA) prend en charge PDB (parmi un grand nombre d'autres débogueurs) et possède une multitude de fonctionnalités intéressantes que le PDB d'Emac n'a pas.

Celui que j'aime le plus est le mode shortkeys. Une fois que vous avez commencé à déboguer un programme, vous pouvez appuyer sur n, s, c etc. directement dans la fenêtre source, au lieu d'avoir à taper ces commandes dans le tampon PDB. Il prend également en charge les liaisons de touches de style Visual-Studio avec des touches de fonction (f10, f11, f5, etc).

Après avoir installé RealGUD, vous devez exécuter M-x load-feature realgud pour le charger, et vous pouvez démarrer pdb avec M-x realgud:pdb.

15
Clément