Python 烧瓶+;Untivent无法在调试模式下重新加载

Python 烧瓶+;Untivent无法在调试模式下重新加载,python,flask,flask-restless,Python,Flask,Flask Restless,我正在编写我的第一个Flask Antientive API,遇到了一个让我有点恼火的小问题 如果我不在调试模式下,它可以正常工作 但是,如果我将调试模式设置为True,则应用程序在尝试重新加载时似乎会中断(但在访问任何端点时都会发生这种情况),并且重新加载不起作用 我附带了这个小示例,因此您可以看到,即使在非常小的应用程序中,我也可以复制它: import flask_sqlalchemy import flask_restless import flask app = flask.Flas

我正在编写我的第一个Flask Antientive API,遇到了一个让我有点恼火的小问题

如果我不在调试模式下,它可以正常工作

但是,如果我将调试模式设置为True,则应用程序在尝试重新加载时似乎会中断(但在访问任何端点时都会发生这种情况),并且重新加载不起作用

我附带了这个小示例,因此您可以看到,即使在非常小的应用程序中,我也可以复制它:

import flask_sqlalchemy
import flask_restless
import flask

app = flask.Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = flask_sqlalchemy.SQLAlchemy(app)

class Person(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Unicode, unique=True, nullable=False)

db.create_all()

manager = flask_restless.APIManager(app, flask_sqlalchemy_db=db)
manager.create_api(Person)

app.run()
现在,每次尝试访问应用程序的任何端点时,都会出现以下错误:

127.0.0.1 - - [30/Nov/2017 09:39:59] "GET / HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/<path>/app.py", line 46, in <module>
    app.run()
  File "/<myvenc/>devices/lib/python3.5/site-packages/flask/app.py", line 841, in run
    run_simple(host, port, self, **options)
  File "/<myvenv>/devices/lib/python3.5/site-packages/werkzeug/serving.py", line 737, in run_simple
    reloader_type)
  File "/<myvenv>/devices/lib/python3.5/site-packages/werkzeug/_reloader.py", line 257, in run_with_reloader
    signal.signal(signal.SIGTERM, lambda *args: sys.exit(0))
  File "/usr/lib/python3.5/signal.py", line 47, in signal
    handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
ValueError: signal only works in main thread
操作系统:Linux ElementaryOS 0.4.1(基于Ubuntu 16.04)

你知道为什么会这样吗?我该怎么解决

**更新**[已解决]


问题实际上是调用app.run,然后执行flask run。。。愚蠢的事情似乎产生了两个不同的线程。

问题实际上是在代码中调用这个:

app.run() 

然后执行flask run,这似乎产生了两个不同的线程。

问题实际上是在代码中调用它:

app.run() 

然后执行flask run,这似乎产生了两个不同的线程。

请让它回答,而不是更新问题。我会的,我只需等待几个小时,然后Stackoverflow允许我回答我的问题。。。请让它回答而不是更新问题。我会的,我只是等了几个小时才允许我回答我的问题。。。IIRC