windows下tornado報錯NotImplementedError的解決

問題:

Traceback (most recent call last):
  File "D:/python38_pycharm/web_server_tornado.py", line 45, in <module>
    http_server.add_sockets(sockets)
  File "D:\python38_pycharm\venv\lib\site-packages\tornado\tcpserver.py", line 165, in add_sockets
    self._handlers[sock.fileno()] = add_accept_handler(
  File "D:\python38_pycharm\venv\lib\site-packages\tornado\netutil.py", line 279, in add_accept_handler
    io_loop.add_handler(sock, accept_handler, IOLoop.READ)
  File "D:\python38_pycharm\venv\lib\site-packages\tornado\platform\asyncio.py", line 99, in add_handler
    self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ)
  File "D:\Python38\lib\asyncio\events.py", line 501, in add_reader
    raise NotImplementedError
NotImplementedError

解決方式:

在使用tornado前添加以下代碼:

import sys

if sys.platform == 'win32':
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

或者 找到 tornado/platform/asyncio.py 文件修改,添加代碼如上。

參考資料:

https://blog.csdn.net/agent_bin/article/details/103082046

https://blog.csdn.net/lojloj/article/details/106798230

https://blog.csdn.net/agent_bin/article/details/103082046

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章