如何为应用引擎应用设置vscode Python调试器?

Jul*_* Go 7 python google-app-engine visual-studio-code

在遵循官方维基中的步骤后,我在使用断点或设置断点启动时会出现以下错误:

    /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
Run Code Online (Sandbox Code Playgroud)

无论如何应用程序运行但断点从未被击中.似乎ptvsd正在尝试使用某种被app引擎沙盒环境阻止的方法.我在python virtualenv中运行vscode,任何线索?

Jul*_* Go 0

我试图找到一种可靠的方法来消除这个错误,但事实证明这非常困难。不过,这里有一些建议:

  • --threadsafe_override=default:false运行应用程序引擎开发服务器时使用该标志,如下所述

  • 应用程序引擎开发服务器必须从 vscode 启动(例如通过任务),而不是单独的终端窗口。

  • 如果仍然出现错误,请停止调试器,终止任务并重新启动所有内容。

(之后调试器正确命中断点,但奇怪的是调用堆栈被设置为主线程而不是包含断点的线程,您需要在调用堆栈窗口中手动单击正确的线程。)