2009-12-14 11 views
29

Esistono modi per eseguire il debug di script Python senza lasciare vim in sistemi * nix (esecuzione dello script, impostazione di punti di interruzione, visualizzazione di variabili in watch-list, ecc.)?debug di script vim e python

risposta

25

Uso pdb:

import pdb 
def main(): 
    list = [1,2,3] 
    pdb.set_trace() 
    list = [2,3,4] 

if __name__ == '__main__': 
    main() 

Ora eseguito utilizzando :!python % e ti ha colpito il punto di interruzione ed essere in grado di eseguire il debug in modo interattivo come in gdb.

+2

c'è anche ipdb che è un po 'come ipython, quindi più user friendly. – michael

+0

Sto ricevendo [questo errore] (http://stackoverflow.com/questions/34914704/bdbquit-raised-when-debugging-python) –

-1

Sembra che tu voglia utilizzare VIM come IDE Python.

Una ricerca rapida di Google ha trovato l'esempio this e this, con molti altri.

EDIT: Bene, Ok, sembra probabile che tu abbia cercato più di quello che ho.

Spero che qualcun altro abbia qualche idea.

+0

Ho già letto questo articolo. Il VimPDB ha menzionato che non funzionava per me e si rompeva ogni volta che provavo a usarlo. – varnie

+0

infatti vimpdb sembra essere rotto ... – Oz123

-2

Da quello che so, c'è un'altra opzione: è possibile utilizzare Eclipse + PyDev per la gestione del progetto e Vim come editor per Eclipse. In questo modo potresti usare il meglio di entrambi i mondi.

Inoltre, non l'ho provato, ma è possibile provare this script.

0

Vedere la sezione "Debug" nel post del blog this. Mostra come impostare F7 per impostare i breakpoint e Shift + F7 per rimuovere i breakpoint. Utilizza anche pdb, come menzionato prima. Con una piccola modifica, è possibile sostituire l'uso di pdb con ipdb (pdb utilizzando ipython), che è molto più bello da usare.

+2

il link che hai fornito è rotto ... – Oz123

6

Prova pyclewn. Permette di usare vim come front-end per pdb. È possibile creare/eliminare punti di interruzione, controllare il flusso del processo di debug, esaminare i valori delle variabili. Tutto da vim!

1

Vim e pdb-clone è la combinazione che utilizzo. Io uso Home - pyclewn che fornisce un sostituto per pdb chiamato pdb-clone che è molto più veloce di pdb vaniglia. Si integra bene con vim tramite un plugin, e la cosa che apprezzo di più è che si prende cura dei breakpoint al di fuori del codice, non imposta le tracce all'interno, quindi non rovina i miei numeri di linea. Non ha ancora una finestra di controllo per Python. Potresti dare un'occhiata anche allo vim-debug, che non sono riuscito a lavorare con la mia impostazione di evidenziazione esistente.

1

Prova anche https://pypi.python.org/pypi/pudb - è come pdb ma più avanzato. Contiene l'evidenziazione del codice, impila, mostra valori disponibili, ecc. Non solo, la soluzione di Vim, ma per me funziona perfettamente.

tre fasi:

Installare:

pip installare pudb

Incolla set_trace nel codice

da pudb import set_trace; set_trace()

eseguire il codice