[英]Running Flask-SocketIO app on PythonAnywhere raises IOError
[英]Flask SocketIO raises a ValueError
我正在嘗試設置可以使用SocketIO
的Flask服務器,但是它不起作用,並且它向我返回以下錯誤:
ValueError: signal only works in main thread
這是我對燒瓶環境的設置:
export FLASK_APP=application.py
export FLASK_DEBUG=1
然后,我像通常那樣運行,並且在開始使用SocketIO
之前可以工作:
flask run
這是我的application.py
代碼,這很簡單,但可能會有所幫助:
import os
from flask import Flask
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config["SECRET_KEY"] = os.getenv("SECRET_KEY")
socketio = SocketIO(app)
@app.route("/")
def index():
return "Hello, world"
我正在使用flask_socketio只是為了了解它是如何工作的。 因此,我的解決方法可能並不理想。
我跑了碼頭
$ export FLASK_ENV=production
$ flask run
我收到以下警告,但我的測試應用程序正常工作
Serving Flask app "<applicationname>.py"
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
[2019-03-20 09:58:09,131] WARNING in __init__: Flask-SocketIO is Running under Werkzeug, WebSocket is not available.
在當前版本的Flask-SocketIO flask run
僅在與Flask開發服務器一起使用時才能使用flask run
方法來啟動服務器,不建議使用該方法,因為它不支持WebSocket。
我建議您做的是按照以下步驟更改應用程序:
import os
from flask import Flask
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config["SECRET_KEY"] = os.getenv("SECRET_KEY")
socketio = SocketIO(app)
@app.route("/")
def index():
return "Hello, world"
if __name__ == '__main__':
socketio.run(app, debug=True)
然后使用以下命令運行該應用程序:
python application.py
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.