Python 导致 500 服务器错误的错误的回溯不可见

Python tracebacks not visible for error leading to 500 Server Error

我通常可以在 Pycharm "run" window 中看到 Python 回溯。但是,我有一个项目,在 "run" window 中没有显示任何 Python 内部服务器错误的回溯(见下文):

> /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
> /Users/noname/PycharmProjects/usc/main.py  * Running on
> http://127.0.0.1:5000/ (Press CTRL+C to quit)
> 127.0.0.1 - - [06/Jul/2015 15:23:42] "GET / HTTP/1.1" 200 -
> 127.0.0.1 - - [06/Jul/2015 15:23:43] "GET /estimator HTTP/1.1" 200 -
> 127.0.0.1 - - [06/Jul/2015 15:23:44] "GET /estimator/errorform HTTP/1.1" 500 -

起初我以为我一定是不小心更改了一些默认设置并完全丢失了回溯。但是我后来意识到,如果我在代码中注入一些任意错误,我仍然会在 "Run" window 中显示回溯。

问题是我知道 500 服务器错误是由我的 Python 指令之一引起的,因为如果我按照下面的评论修改指令,我可以让错误消失。我很困惑为什么我得到 500 服务器错误,但没有任何 Python 回溯。

相关代码片段如下:

@app.route('/estimator/errorform', methods=['GET', 'POST'])
def errorform():
    form = ErrorForm()
    line = str(open("logs.txt", "r").readlines()[int(file_len("logs.txt"))]).rstrip()  
    #Server Error disappears if I replace [int(file_len("logs.txt"))] with 1, above
    if form.validate_on_submit():
        webbrowser.open('mailto:hello@mail.com?subject=Feedback&body=
        <insert your message here>. \n\n Logs: %s' % (line))
    return render_template('main.html', form=form, show_results=0,page='errorform')

尝试将 debug = True 设置为您的 Flask 应用程序:

app = Flask(__name__)
app.debug = True

参见Flask documentation