¿Cómo configurar vscode el depurador de Python para una aplicación de motor de aplicación?

Después de seguir los pasos en la wiki oficial, recibo el siguiente error al iniciar con puntos de interrupción o establecer puntos de interrupción:

/ptvsd/wrapper.py", line 423, in pydevd_request os.write(self.pipe_w, s.encode('utf8')) File "google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/stubs.py", line 40, in os_error_not_implemented raise OSError(errno.ENOSYS, 'Function not implemented') OSError: [Errno 38] Function not implemented 

La aplicación se ejecuta de todos modos, pero los puntos de interrupción nunca se alcanzan. Parece que ptvsd está tratando de usar algún método que está bloqueado por el entorno del entorno aislado del motor de la aplicación. Estoy ejecutando vscode en un python virtualenv, ¿alguna pista?

Mi solución fue usar el depurador de la edición de la comunidad de PyCharm, su IDE y el depurador similares quizás más capaces para la depuración específica de Python.

He tratado de encontrar una manera confiable de deshacerme de este error, pero está resultando bastante difícil. Aquí hay algunos consejos sin embargo:

  • Use el indicador --threadsafe_override=default:false cuando ejecute el servidor de desarrollo del motor de aplicaciones como se explica aquí .

  • El servidor de desarrollo del motor de aplicaciones debe iniciarse desde vscode (por ejemplo, a través de una tarea) en lugar de una ventana de terminal separada.

  • Si aún recibe el error, detenga el depurador, finalice la tarea y reinicie todo.

(Después de que el depurador llegue correctamente a los puntos de interrupción, pero curiosamente, la stack de llamadas se establece en el hilo principal en lugar de la cadena que contiene el punto de interrupción, debe hacer clic manualmente en el hilo correcto en la ventana de la stack de llamadas).