我正在尝试从IPython运行我的Flask应用程序。但是,它失败并出现SystemExit
错误。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
使用IPython运行此操作会显示以下错误:
SystemExit Traceback (most recent call last)
<ipython-input-35-bfd7690b11d8> in <module>()
17
18 if __name__ == '__main__':
---> 19 app.run(debug = True)
/Users/ravinderbhatia/anaconda/lib/python2.7/site-packages/flask/app.pyc in run(self, host, port, debug, **options)
770 options.setdefault('use_debugger', self.debug)
771 try:
--> 772 run_simple(host, port, self, **options)
773 finally:
774 # reset the first request information if the development server
/Users/ravinderbhatia/anaconda/lib/python2.7/site-packages/werkzeug/serving.py in run_simple(hostname, port, application, use_reloader, use_debugger, use_evalex, extra_files, reloader_interval, reloader_type, threaded, processes, request_handler, static_files, passthrough_errors, ssl_context)
687 from ._reloader import run_with_reloader
688 run_with_reloader(inner, extra_files, reloader_interval,
--> 689 reloader_type)
690 else:
691 inner()
/Users/ravinderbhatia/anaconda/lib/python2.7/site-packages/werkzeug/_reloader.py in run_with_reloader(main_func, extra_files, interval, reloader_type)
248 reloader.run()
249 else:
--> 250 sys.exit(reloader.restart_with_reloader())
251 except KeyboardInterrupt:
252 pass
SystemExit: 1
答案 0 :(得分:8)
您正在使用Jupyter Notebook或IPython来运行开发服务器。您还启用了调试模式,默认情况下启用重新加载器。重新加载器尝试重新启动IPython无法处理的进程。
最好使用flask
命令运行开发服务器。
export FLASK_APP=my_app.py
export FLASK_DEBUG=1
flask run
如果您仍想使用不再推荐的python
,请使用普通app.run
解释程序来运行该应用程序。
python my_app.py
如果您想从Jupyter呼叫app.run
,请禁用重新加载器。
app.run(debug=True, use_reloader=False)
答案 1 :(得分:1)
使用这个,对我来说效果很好:
app.run(debug = True,use_reloader = False)
答案 2 :(得分:0)
我也遇到了同样的问题,因此删除了debug=True
就解决了。这是我的密码
from flask import Flask
app=Flask(__name__)
@app.route('/')
def home():
return "Homepage Here"
if __name__=="__main__":
app.run()
答案 3 :(得分:0)
在Google Colab内部,使用此方法:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello(): return "Hello World"
import portpicker
port = portpicker.pick_unused_port()
from google.colab import output
output.serve_kernel_port_as_window(port)
from gevent.pywsgi import WSGIServer
host='localhost'
app_server = WSGIServer((host, port), app)
app_server.serve_forever()
一些解释:
output.serve_kernel_port_as_iframe(port)
在iframe中展示