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