python3.8打包提示修复_解决Python3.8运行tornado项目报NotImplementedError错误

今天拉了一个使用了报错了,要求环境Python3.8,理论上应该直接正常运行的,报错信息:

Traceback (most recent call last):

File "ice_server.py", line 150, in

RunServer.run_server(port=p, host=h)

File "ice_server.py", line 125, in run_server

tornado_server.start()

File "D:\PycharmProjects\ice\venv\lib\site-packages\tornado\tcpserver.py", line 244, in start

self.add_sockets(sockets)

File "D:\PycharmProjects\ice\venv\lib\site-packages\tornado\tcpserver.py", line 165, in add_sockets

self._handlers[sock.fileno()] = add_accept_handler(

File "D:\PycharmProjects\ice\venv\lib\site-packages\tornado\netutil.py", line 279, in add_accept_handler

io_loop.add_handler(sock, accept_handler, IOLoop.READ)

File "D:\PycharmProjects\ice\venv\lib\site-packages\tornado\platform\asyncio.py", line 100, in add_handler

self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ)

File "C:\Users\huan\AppData\Local\Programs\Python\Python38\lib\asyncio\events.py", line 501, in add_reader

raise NotImplementedError

NotImplementedError

一番谷歌原来对于这个问题tornado的参与者们已经收到了很多反馈,有个回复里这么说:

Python 3.8 asyncio is going to make the "proactor" event loop the default, instead of the current "selector" event loop. This is a problem for Tornado because the proactor event loop doesn't support the unix-style add_reader APIs that Tornado uses.

Anyone using Tornado 5+ on windows with python 3.8 will need to configure asyncio to use the selector event loop; we'll have to document this. We should also try to detect the use of a proactor event loop and give a clear error message

大概意思Python3.8的asyncio改变了循环方式,因为这种方式在windows上不支持相应的add_reader APIs,就会抛出NotImplementedError错误。

解决办法

找到这个项目使用的python环境的lib\site-packages,做下面的修改,在path-to-python\lib\site-packages\tornado\platform\asyncio.py开头添加代码:

这样就可以正常运行了。

总结

到此这篇关于Python3.8运行tornado项目报NotImplementedError错误的文章就介绍到这了,更多相关Python3.8运行tornado项目报错内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://beltxman.com/3218.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。
这个警告是由于在使用 `pyinstaller` 进行打包时,可能没有正确地将 `vtkFiltersSources-8.1.dll` 和 `pcl.cp36-win_amd64.pyd` 这两个文件添加到最终的可执行文件中。 `pyinstaller` 在打包时会尝试自动检测和包含项目所需的文件和依赖项,但有时会遇到一些问题。 为了解决这个问题,您可以尝试以下几种方法: 1. 确保 `vtkFiltersSources-8.1.dll` 和 `pcl.cp36-win_amd64.pyd` 这两个文件位于正确的位置。您可以手动检查 `site-packages/pclpy_dependencies/bin` 目录下是否存在这两个文件,并确保它们的文件名拼写和大小写与错误消息中提到的一致。 2. 确保 `pyinstaller` 命令中包含了正确的路径参数。您可以尝试使用绝对路径指定 `site-packages` 目录,例如: ``` pyinstaller -F -p "C:\Users\a212\PycharmProjects\pythonProject4\venv\Lib\site-packages" f-s.py ``` 3. 如果上述方法仍然不起作用,您可以尝试手动拷贝 `vtkFiltersSources-8.1.dll` 和 `pcl.cp36-win_amd64.pyd` 这两个文件到您的项目目录中,并在打包时使用 `--add-binary` 参数将它们包含进去。例如: ``` pyinstaller -F --add-binary "vtkFiltersSources-8.1.dll;." --add-binary "pcl.cp36-win_amd64.pyd;." f-s.py ``` 这将会将这两个文件添加到最终的可执行文件中。 如果尝试上述方法后仍然遇到问题,请提供更多详细信息,例如完整的错误消息和您的操作系统环境,以便我们能够更好地帮助您解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值