Sugestões para Ferramentas de depuração em Python? [fechado]

Ontem fiz uma simulação usando Python. Tive algumas dificuldades com as variáveis e com a depuração .

Existe algum software para Python, que forneça um depurador decente?

pergunta relacionada: Qual é a melhor maneira de depurar o meu código Python?

Author: Community, 2009-01-25

10 answers

Não te esqueças da depuração pós-morte! Depois que uma exceção é lançada, a estrutura da pilha com todos os locais está contida dentro sys.last_traceback. Você pode fazer pdb.pm() para ir para a moldura da pilha onde a exceção foi lançada, em seguida, p (retty) p (rint) o locals().

Aqui está uma função que usa esta informação para extrair as variáveis locais da pilha.

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

Utilização:

>>> 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
Author: aoeu256, 2014-08-20 16:00:17

O Winpdb é um depurador gráfico em Python da plataforma independente de plataformas com suporte para depuração remota através de uma rede, vários tópicos, modificação de espaços de nomes, depuração incorporada, comunicação encriptada e é até 20 vezes mais rápido que o pdb.

Características:

  • licença GPL. O Winpdb é software livre.
  • compatível com o CPython 2.3 a 2.6 e o Python 3000
  • compatível com o wxPython 2, 6 a 2, 8
  • Plataforma independente, e testado em Ubuntu Gutsy e Windows XP.
  • Interfaces de utilizador: o rpdb2 é baseado na consola, enquanto o winpdb necessita do wxPython 2, 6 ou mais tarde.

Imagem http://winpdb.org/images/screenshot_winpdb_small.jpg

 31
Author: nosklo, 2009-01-25 05:53:27

O Pudb é um depurador visual para o python.

pudb screenshot

 23
Author: miku, 2011-06-20 22:39:41

Poderá verificar o pdb do depurador python, que está incluído na biblioteca-padrão: http://docs.python.org/library/pdb.html

 11
Author: sykora, 2009-01-25 05:18:08

Como o post sugerido, existem algumas opções:

  • Pdb: depurador incorporado do Python

  • Pudb: depurador GUI

  • Pydbgr: uma reescrita do depurador pydb

  • Ipdb: ipython's ipdb

 10
Author: cizixs, 2014-03-24 07:22:44

Eu recomendaria pydbe ipython para depuração interactiva.

Ambos têm screencasts disponíveis em showmedo.com

 8
Author: Ryan, 2009-01-25 20:58:38

Komodo IDE (não o free Komodo Edit) vem com um depurador. Não o uso há mais de um ano, mas era bom naquela época (v 3, IIRC).

 6
Author: Matthew Schinckel, 2009-01-25 07:55:06

Existe um plugin Eclipse para o Python que suporta depuração, entre outras ferramentas. Veja o Tutorial para começar, e o site para download. É claro que você vai precisar de obter Eclipse também.

 3
Author: Leonid, 2010-09-05 11:38:29
Usei o PyCharm e o WingIDE para depurar, ambos são bons em depurar.

O PyCharm usa bastante RAM( é em Java), ainda assim acabei por usá-lo como posso depurar doctests que estou executando a partir dele.

O WindIDE está escrito em Python, gosto mais dele do que o PyCharm, excepto a falta de documentos em execução. Também podes tentar o Spyder, que nunca consegui fazer funcionar.
 3
Author: Mark Horvath, 2013-06-21 15:54:07

Ver o oficial Python wiki para sugestões. Sinta-se livre para atualizar e se inscrever para receber notificações quando algo novo sair.

 2
Author: anatoly techtonik, 2012-05-21 09:26:15