問題:
Traceback (most recent call last): File "/home/python/.virtualenvs/toutiao/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise raise value File "/home/python/toutiao-backend/toutiao/__init__.py", line 6, in <module> import socketio File "/home/python/.virtualenvs/toutiao/lib/python3.6/site-packages/socketio/__init__.py", line 3, in <module> from .client import Client File "/home/python/.virtualenvs/toutiao/lib/python3.6/site-packages/socketio/client.py", line 5, in <module> import engineio File "/home/python/.virtualenvs/toutiao/lib/python3.6/site-packages/engineio/__init__.py", line 3, in <module> from .client import Client File "/home/python/.virtualenvs/toutiao/lib/python3.6/site-packages/engineio/client.py", line 44, in <module> original_signal_handler = signal.signal(signal.SIGINT, signal_handler) File "/usr/lib64/python3.6/signal.py", line 47, in signal handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler)) ValueError: signal only works in main thread
解決方法:
推測與項目中socketio有關
1.socketio 插件在使用flask run啟動,出現 ValueError: signal only works in main thread 異常的問題。
如果非要flask run啟動,flask run --no-reload 切記一定要帶 --no-reload 參數,本人測試已經成功。
2.如果是使用app.run啟動,run()指定參數use_reloader=False, 這個方法我還沒進行嘗試
app.run(debug=True, use_reloader=False)