2012-07-15 17 views
18

He estado jugando con Gevent, y me gusta mucho. Sin embargo, me encontré con un problema. El punto de interrupción no está siendo golpeado, y la depuración no funciona (usando Visual Studio Python Tools y Eclipse PyDev). Esto ocurre después de llamar al monkey.patch_all().gevent monkey-patching and breakpoints

Esto es un gran problema para mí, y desafortunadamente este es un bloqueador para el uso de gevent. He encontrado un few threads que parece indicar que gevent rompe la depuración, pero me imagino que hay una solución para eso.

¿Alguien sabe cómo hacer que la depuración y los puntos de interrupción funcionen con el parche de gevent y monkey?

+0

Bueno, ¿por qué no sirve "impresión" que estamos en el número 80? Si bien esto no es exactamente lo que está buscando, puede ayudar a solucionar un error o dos. – Moonwalker

Respuesta

8

PyCharm IDE soluciona el problema. Es compatible con la depuración de código gevent después de establecer un indicador de configuración: http://blog.jetbrains.com/pycharm/2012/08/gevent-debug-support/.

Desafortunadamente, por el momento no conozco una herramienta gratuita capaz de depurar gevent.

UPD: ¡HAY! Ahora hay una versión de comunidad de PyCharm.

+1

Porque incluso un año después, estos hilos siguen siendo útiles ... Jetbrains ahora ofrece una versión "comunitaria" gratuita de Pycharm - http://www.jetbrains.com/pycharm/download/index.html –

0

Actualmente uso Pycharm 2.7.3 y también tuve problemas con la eliminación de errores de gevent 0.13.8. Sin embargo, cuando actualicé a gevent 1.0rc3 encontré que podía depurar de nuevo correctamente.


Nota al margen:

que sólo ahora aprendido que JetBrains tenía una solución con la bandera de configuración. Estaba solucionando el problema cuando necesitaba depurar con el siguiente hack. Honestamente, no sé por qué funcionó ni cuáles fueron las consecuencias negativas. Acabo de hacer un poco de prueba y error, y esto permitió que la depuración funcionara cuando se usaban grequests.

# overrides the monkeypatch issue which causes debugging in PyDev to not work. 
def patch_time(): 
    return 
import gevent.monkey 
gevent.monkey.patch_time = patch_time 
import grequests 
Cuestiones relacionadas