Flask CLI 显示“TypeError:异常必须从 BaseException 派生”

Bry*_*hon 2 python flask

当我从终端运行 Flask 时flask run,如果我的代码有错误,我会看到“TypeError:异常必须从 BaseException 派生”,而不是实际的错误。要调试它,我需要打开浏览器并检查exc_infoWerkzeug 调试器中的变量,这很不方便。Flask 为什么要这样做?我怎样才能看到终端中的实际错误?

$ FLASK_APP=example flask run

Traceback (most recent call last):
  File "[...]/lib/python3.9/site-packages/flask/cli.py", line 356, in __call__
    self._flush_bg_loading_exception()
  File "[...]/lib/python3.9/site-packages/flask/cli.py", line 344, in _flush_bg_loading_exception
    raise exc_info
TypeError: exceptions must derive from BaseException
Run Code Online (Sandbox Code Playgroud)

dav*_*ism 9

这是Flask 2.0 中引入的错误,将在 Flask 2.0.2 发布时修复。CLI 错误地重新引发sys.exc_info()而不仅仅是异常对象。在此之前,您可以通过运行 with 来关闭延迟加载flask run --eager-loading