我正在尝试在Google云应用引擎上部署一个烧瓶应用。它在我的本地虚拟环境中运行顺畅,但是我在云中运行它时遇到502错误。
现在我正在尝试在云服务器上调试我的代码,使用调试模式和SSH进入我的实例。使用docker exec -it [ID] /bin/bash
我可以访问我的应用程序的根目录。现在我在运行python app.py
时出现以下错误:
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
Traceback (most recent call last):
File "app.py", line 479, in <module>
app.run(port=8080)
File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 941, in run
run_simple(host, port, self, **options)
File "/usr/local/lib/python3.6/site-packages/werkzeug/serving.py", line 814, in run_simple
inner()
File "/usr/local/lib/python3.6/site-packages/werkzeug/serving.py", line 774, in inner
fd=fd)
File "/usr/local/lib/python3.6/site-packages/werkzeug/serving.py", line 660, in make_server
passthrough_errors, ssl_context, fd=fd)
File "/usr/local/lib/python3.6/site-packages/werkzeug/serving.py", line 577, in __init__
self.address_family), handler)
File "/usr/local/lib/python3.6/socketserver.py", line 453, in __init__
self.server_bind()
File "/usr/local/lib/python3.6/http/server.py", line 136, in server_bind
socketserver.TCPServer.server_bind(self)
File "/usr/local/lib/python3.6/socketserver.py", line 467, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use
我一直试图杀死我运行时列出的那些进程:
ps -fA | grep python
但是,这并未解决正在使用的地址问题。同时更改app.run()中的端口并不能解决我的问题。
答案 0 :(得分:2)
我有一个类似的问题,这是由于在加载模块时Flask应用程序也正在运行引起的,因为我有
if __name__ == "__main__":
app.run()
在底部。请注意,最近要求将服务器文件命名为“ main.py”可能会导致此错误出现。
答案 1 :(得分:1)
我认为问题在于您不需要为云端口专门化端口。 Google Cloud会找到自行运行您的应用的端口。因此,只需编写app.run(port=8080)
app.run()
答案 2 :(得分:1)
虽然我无法弄清楚如何免费&#34;运行地址,我通过在不同的端口上运行它来启动另一个烧瓶过程来解决问题,如下所示:
flask run --port=80