在 heroku 上初始化 Flask-SocketIO python 应用程序

Initialize Flask-SocketIO python app on heroku

我是 python 的新手,所以这可能是一个愚蠢的问题,但我有以下问题:

我正在尝试将 Flask-SocketIO 应用程序部署到 heroku,我的 app.py 看起来像这样:

app = Flask(__name__)
socketio = SocketIO(app)
opt: Dict[Any, Any] = {}
.
.
@socketio.on('connect')
def joined():
   test = json.dumps(opt)
   emit('test', test)
.
.
if __name__ == '__main__':
   opt = setup_args()
   socketio.run(app)

我的 procfile 如下所示:

web: gunicorn -k flask_sockets.worker app:app

如果我 运行 heroku local 我的服务器按预期启动,我可以与我的客户端建立套接字连接,但我的变量 opt 似乎没有被填充。根据我在文档中阅读的内容,这是因为 procfile 为我执行了 socketio.run(app),而我的 __main__ 部分没有被执行。 我需要以某种方式触发一个方法来初始化我的 app.py 中的一些变量。 我怎样才能做到这一点?

谢谢

为什么不简单地将 opt = setup_args() 移出 if 语句,而是将其移动到文件顶部的某处?