gpt4 book ai didi

python - 在 Jupyter Notebook 中调试 Flask 服务器

转载 作者:太空狗 更新时间:2023-10-29 22:12:37 28 4
gpt4 key购买 nike

我想在 jupyter notebook 中调试小型 flask 服务器以进行演示。

我在最新的 Ubuntu 和 Python2 上创建了 virtualenv(在使用 Python3 的 Mac 上也会出现这个错误),pip install flask jupyter。

但是,当我使用 helloworld 脚本创建单元格时,它不会在笔记本中运行。

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
return "Hello World!"

if __name__ == "__main__":
app.run(debug=True,port=1234)

File "/home/***/test/local/lib/python2.7/site-packages/ipykernel/kernelapp.py", line 177, in _bind_socket s.bind("tcp://%s:%i" % (self.ip, port)) File "zmq/backend/cython/socket.pyx", line 495, in zmq.backend.cython.socket.Socket.bind (zmq/backend/cython/socket.c:5653) File "zmq/backend/cython/checkrc.pxd", line 25, in zmq.backend.cython.checkrc._check_rc (zmq/backend/cython/socket.c:10014) raise ZMQError(errno) ZMQError: Address already in use

注意 - 每次失败后我都会更改端口号。

当然,它作为独立脚本运行。

不更新 (debug=True) 没问题。

最佳答案

我安装了 Jupyter 和 Flask,您的原始代码可以正常工作。


flask.Flask 对象是一个 WSGI 应用程序,而不是服务器。当您在 shell 中调用 python -m flask run 时,Flask 使用 Werkzeug 的开发服务器作为 WSGI 服务器。它创建一个新的 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(),所以这里应该没有区别。

关于python - 在 Jupyter Notebook 中调试 Flask 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41831929/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com