【问题标题】:Running flask in VSCode cause HTTPServer.serve_forever(self) breakpoint everytime在 VSCode 中运行烧瓶每次都会导致 HTTPServer.serve_forever(self) 断点
【发布时间】:2018-09-10 06:33:54
【问题描述】:

我已经创建了一个 Flask 应用程序并开始构建我的项目,但是当我在任何文件中使用断点进行调试时,vscode 会自动停止在flask 默认模块中的HTTPServer.serve_forever(self) 这一行。

这很烦人,因为它会跳转到这一行并忽略我原来的断点,让我很难调试。

有什么想法吗?

launch.json

{
    "name": "Python: Custom Flask",
    "type": "python",
    "request": "launch",
    "program": "${workspaceFolder}/venv/bin/activate",
    "module": "flask",
    "env": {
        "ENV": ".local"
    },
    "args": [
    "run",
    ]
}

serving.py

def serve_forever(self):
    self.shutdown_signal = False
    try:
        HTTPServer.serve_forever(self) # <- Always stop on this line
    except KeyboardInterrupt:
        pass
    finally:
        self.server_close()

app.py

from flask import app
app = Flask(__name__)

@app.route('/')
def index():
    return "OK"

app.run()

【问题讨论】:

  • 有错误信息吗?
  • @CharmingRobot 不,没有错误消息。但是,我发现这可能是正常的过程,因为主线程将一直运行,这就是为什么在 HTTPServer.serve_forever 处停止,所以当我单击其他线程时,我通常可以看到我在编辑器中设置的断点。奇怪的是,我之前不会停在主线程上,所以我必须再做一步来切换令人讨厌的线程......

标签: python flask visual-studio-code httpserver vscode-debugger


【解决方案1】:

这里正在跟踪此问题:https://github.com/Microsoft/vscode-python/issues/2498

看起来问题已在 Python 插件的开发分支中得到解决,目前的解决方法是

您可以通过在“调用堆栈”窗口中选择您的线程来继续调试。 source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多