【问题标题】:How to setup vscode Python debugger for an app engine app?如何为应用引擎应用程序设置 vscode Python 调试器?
【发布时间】:2018-09-09 22:21:45
【问题描述】:

按照官方wiki 中的步骤进行操作后,在使用断点启动或设置断点时不断出现以下错误:

    /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

应用程序仍然运行,但断点永远不会命中。似乎 ptvsd 正在尝试使用某些被应用引擎沙盒环境阻止的方法。我在 python virtualenv 中运行 vscode,有什么线索吗?

【问题讨论】:

  • 遇到同样的问题?当我启动 vscode 进行 ptvsd 调试时,它有时会调试

标签: python google-app-engine visual-studio-code


【解决方案1】:

我的解决方案是使用 PyCharm 社区版的调试器,它类似的也许更强大的 IDE 和调试器用于 Python 特定的调试。

【讨论】:

    【解决方案2】:

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

    • 按照here 的说明,在运行应用引擎开发服务器时使用--threadsafe_override=default:false 标志。

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

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

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

    【讨论】:

    • 我也试过了。没用。我确实在 VSC 终端中启动了任务。我也使用虚拟环境。
    猜你喜欢
    • 2021-02-04
    • 2021-02-09
    • 2021-05-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2019-06-27
    • 1970-01-01
    • 2014-10-05
    相关资源
    最近更新 更多