如何使用SocketIO和Docopt参数运行Gunicorn/WSGI Flask应用程序?

如何使用SocketIO和Docopt参数运行Gunicorn/WSGI Flask应用程序?,flask,socket.io,wsgi,gunicorn,digital-ocean,Flask,Socket.io,Wsgi,Gunicorn,Digital Ocean,我正在关注这一点 我被困在如何制作我的wsgi.py上。指南说基本的wsgi.py设置如下 from myproject import app if __name__ == "__main__": app.run() from server_pedge import socket_io if __name__ == "__main__": socket_io.run() 我的Flask应用程序的主要条目是server pedge.py。我使用Docopt中的python3

我正在关注这一点

我被困在如何制作我的
wsgi.py
上。指南说基本的
wsgi.py
设置如下

from myproject import app

if __name__ == "__main__":
    app.run()
from server_pedge import socket_io

if __name__ == "__main__":
    socket_io.run()
我的Flask应用程序的主要条目是
server pedge.py
。我使用Docopt中的
python3-B server_pedge.py--https-o
参数运行它,以https启动它。以下是我的
服务器\u pedge.py
中的一些部分

import database
import global_var
import rethinkdb as r
import subprocess

app       = Flask(__name__)
socket_io = SocketIO(app)

...

socket_io.run(app, host="0.0.0.0", ssl_context=https_context)
我当前的
wsgi.py
是这样的

from myproject import app

if __name__ == "__main__":
    app.run()
from server_pedge import socket_io

if __name__ == "__main__":
    socket_io.run()
使用Gunicorn运行时,会出现以下错误

bin/gunicorn --bind 0.0.0.0:5000 wsgi:app
[2017-05-14 10:55:17 +0000] [4337] [INFO] Starting gunicorn 19.7.1
[2017-05-14 10:55:17 +0000] [4337] [INFO] Listening at: http://0.0.0.0:5000 (4337)
[2017-05-14 10:55:17 +0000] [4337] [INFO] Using worker: sync
[2017-05-14 10:55:17 +0000] [4340] [INFO] Booting worker with pid: 4340
Failed to find application: 'wsgi'
[2017-05-14 10:55:18 +0000] [4340] [INFO] Worker exiting (pid: 4340)
[2017-05-14 10:55:18 +0000] [4337] [INFO] Shutting down: Master
[2017-05-14 10:55:18 +0000] [4337] [INFO] Reason: App failed to load.

它甚至不是HTTPS。这里的修复方法是什么?

您运行gunicorn的目录是什么?要找到它,您应该与
wsgi.py
文件位于同一目录中。也不要使用
bin/gunicorn
,使用
gunicorn
,并确保它在您的路径中。使用指向
gunicorn
的相对路径可能会导致它无法在当前目录中查找。
bin/gunicorn
来自Python项目的虚拟环境。
gunicorn
能够找到
wsgi.py
,因此我认为这不是问题。如果您已经正确地激活了虚拟环境,您就不需要说
bin/gunicorn
。仅指定
gunicorn
。如果不能,则表示您尚未激活虚拟环境。
哪个gunicorn
指我已卸载的系统范围内已安装的
gunicorn