2009-12-14 16 views
29

¿Hay alguna forma de depurar secuencias de comandos python que no dejen vim en sistemas * nix (ejecutar el script, configurar puntos de interrupción, mostrar variables en la lista de observación, etc.)?depuración de scripts vim y python

Respuesta

25

Uso pdb:

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

if __name__ == '__main__': 
    main() 

Ahora ejecuta utilizando :!python % y usted va a golpear su punto de ruptura y ser capaz de depurar de forma interactiva como en gdb.

+2

también hay ipdb que es un poco como ipython, por lo que es más fácil de usar. – michael

+0

Recibo [este error] (http://stackoverflow.com/questions/34914704/bdbquit-raised-when-debugging-python) –

-1

Parece que quiere usar VIM como un IDE de Python.

Una búsqueda rápida de Google encontró this y this ejemplo, con muchos más.

EDITAR: Bueno, vale, parece que has buscado más de lo que tengo.

Espero que alguien más tenga algunas ideas.

+0

ya he leído este artículo. El VimPDB mencionado allí no funcionó para mí y se rompe cada vez que traté de usarlo. – varnie

+0

de hecho vimpdb parece estar roto ... – Oz123

-2

Por lo que sé, hay una opción más: puede usar Eclipse + PyDev para la gestión de proyectos y Vim como editor para Eclipse. De esa manera, podrías usar lo mejor de ambos mundos.

Además, no lo he intentado, pero podría intentar this script.

0

Consulte la sección "Depuración" en la publicación del blog this. Muestra cómo configurar F7 para establecer puntos de interrupción y Shift + F7 para eliminar puntos de interrupción. También usa pdb, como se mencionó anteriormente. Con una pequeña modificación, puede reemplazar el uso de pdb con ipdb (pdb usando ipython), que es mucho más fácil de usar.

+2

el enlace que ha proporcionado está roto ... – Oz123

6

Probar pyclewn. Permite usar vim como front end para pdb. Puede crear/eliminar puntos de interrupción, controlar el flujo del proceso de depuración, observar los valores de sus variables. Todo de vim!

1

Vim y pdb-clone es la combinación que uso. Yo uso Home - pyclewn que proporciona un reemplazo para pdb llamado pdb-clone que es bastante más rápido que vandla pdb. Se integra bien con vim a través de un complemento, y lo que más aprecio es que se ocupa de los puntos de interrupción fuera del código, sin establecer rastros dentro, así no estropear mis números de línea. Todavía no tiene una ventana de reloj para python. También puede echarle un vistazo al vim-debug, que no pude trabajar con mi configuración de resaltado existente.

1

También pruebe https://pypi.python.org/pypi/pudb - es como pdb pero más avanzado. Contiene resaltado de código, pila, que muestra los valores disponibles, etc. No solo la solución vim, sino que funciona a la perfección.

Tres Pasos:

Instalar:

pip instalar pudb

set_trace Pegar en el código

de set_trace importación pudb; set_trace()

ejecutar el código