ValueError: signal only works in main thread


問題:

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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM