Suggestions pour les outils de débogage Python? [fermé]

hier j'ai fait une simulation en utilisant Python. J'ai eu quelques difficultés avec les variables et le débogage de .

y a-t-il un logiciel pour Python, qui fournit un débogueur décent?

question connexe: Quelle est la meilleure façon de déboguer mon code Python?

39
demandé sur Community 2009-01-25 08:14:42

10 réponses

n'oubliez pas le débogage post-mortem! Après une exception est jeté, le cadre de pile avec tous les locaux est contenu dans sys.last_traceback . Vous pouvez faire pdb.pm() pour aller au cadre de la pile où l'exception a été lancée puis p(retty)p(rint) le locals() .

Voici une fonction qui utilise cette information pour extraire les variables locales de la pile.

def findlocals(search, startframe=None, trace=False):

    from pprint import pprint
    import inspect, pdb

    startframe = startframe or sys.last_traceback
    frames = inspect.getinnerframes(startframe)

    frame = [tb for (tb, _, lineno, fname, _, _) in frames
             if search in (lineno, fname)][0]

    if trace:
        pprint(frame.f_locals)
        pdb.set_trace(frame)
    return frame.f_locals

Utilisation:

>>> def screwyFunc():
    a = 0
    return 2/a

>>> screwyFunc()

Traceback (most recent call last):
  File "<pyshell#62>", line 1, in <module>
    screwyFunc()
  File "<pyshell#55>", line 3, in screwyFunc
    return 2/a
ZeroDivisionError: integer division or modulo by zero
>>> findlocals('screwyFunc')
{'a': 0}
16
répondu aoeu256 2014-08-20 16:00:17

Winpdb est un débogueur graphique GPL Python "indépendant de la plate-forme qui prend en charge le déboguage à distance sur un réseau, plusieurs threads, la modification de l'espace de noms, le déboguage intégré, la communication chiffrée et est jusqu'à 20 fois plus rapide que pdb.

Dispose:

Licence GPL
  • . Winpdb est un logiciel libre.
  • Compatible avec CPython 2.3 à 2.6 et Python 3000
  • Compatible avec wxPython 2.6 à 2.8
  • plate-forme indépendante, et testé sur Ubuntu Gutsy et Windows XP.
  • Interfaces utilisateur: rpdb2 est basé sur la console, alors que winpdb nécessite wxPython 2.6 ou plus tard.

Capture d'écran http://winpdb.org/images/screenshot_winpdb_small.jpg

31
répondu nosklo 2009-01-25 05:53:27

pudb est un débogueur visuel pour python.

pudb screenshot

23
répondu miku 2011-06-20 22:39:41

vous pouvez consulter le débogueur Python pdb, qui est inclus dans la bibliothèque standard: http://docs.python.org/library/pdb.html

11
répondu sykora 2009-01-25 05:18:08

comme le post suggéré, il ya quelques options:

  • pdb: le débogueur intégré de Python pdb

  • pudb: GUI debugger pudb

  • pydbgr: une réécriture de la pydb débogueur pydbgrb

  • ipdb: ipbd d'iPython ipdb

10
répondu cizixs 2014-03-24 07:22:44

je recommande pydb et ipython pour le débogage interactif.

ont tous les deux des screencasts disponibles à showmedo.com

8
répondu Ryan 2009-01-25 20:58:38

Komodo IDE (pas le free Komodo Edit ) est livré avec un débogueur. Je ne l'ai pas utilisé depuis plus d'un an, mais il était bon à l'époque (v 3, IIRC).

6
répondu Matthew Schinckel 2009-01-25 07:55:06

il y a un plug-in Eclipse pour Python qui supporte le débogage, entre autres outils. Voir le Tutorial pour commencer, et le site pour télécharger. Bien sûr vous aurez besoin d'obtenir Eclipse .

3
répondu Leonid 2010-09-05 11:38:29

j'ai utilisé PyCharm et WingIDE pour le débogage, les deux sont bons pour le débogage.

PyCharm utilise beaucoup de RAM (C'est en Java), mais j'ai fini par l'utiliser car je peux déboguer les doctests que j'exécute à partir de lui.

WindIDE est écrit en Python, je l'aime plus que PyCharm sauf le manque d'exécution de doctests.

vous pouvez aussi essayer Spyder, que je n'ai jamais réussi à faire fonctionner.

3
répondu Mark Horvath 2013-06-21 15:54:07

officiels Python wiki pour des suggestions. N'hésitez pas à mettre à jour et à vous abonner pour recevoir des notifications lorsque quelque chose de nouveau sort.

2
répondu anatoly techtonik 2012-05-21 09:26:15