我想在jupyter笔记本中调试小型烧瓶服务器以进行演示。
我在最新的Ubuntu和Python2上创建了virtualenv(在使用Python3的Mac上也会发生此错误),pip安装flask jupyter。
但是,当我使用helloworld脚本创建单元格时,它不会在Notebook中运行。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run(debug=True,port=1234)
在_bind_socket s.bind(“ tcp://%s:%i”中的文件“ /home/***/test/local/lib/python2.7/site-packages/ipykernel/kernelapp.py”第177行%(self.ip,端口))文件“ zmq / backend / cython / socket.pyx”,行495,位于zmq.backend.cython.socket.Socket.bind(zmq / backend / cython / socket.c:5653) zmq.backend.cython.checkrc._check_rc中的文件“ zmq / backend / cython / checkrc.pxd”,第25行(zmq / backend / cython / socket.c:10014)引发ZMQError(errno)ZMQError:地址已在使用中
注意:每次失败后,我都会更改端口号。
当然,它可以作为独立脚本运行。
没有(debug = True)更新就可以了。
我安装了Jupyter和Flask,并且您的原始代码有效。
该flask.Flask
对象是WSGI应用程序,而不是服务器。WSGI
当您python -m flask run
在Shell中调用时,Flask将Werkzeug的开发服务器用作服务器。它将创建一个新的WSGI服务器,然后将您的应用作为参数传递给werkzeug.serving.run_simple
。也许您可以尝试手动执行此操作:
from werkzeug.wrappers import Request, Response
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == '__main__':
from werkzeug.serving import run_simple
run_simple('localhost', 9000, app)
Flask.run()
run_simple()
内部调用,因此此处应该没有区别。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句