在MSYS2 Mingw-64环境安装Python aiortc模块的运行报错问题求助
MSYS2环境aiortc安装及运行报错解决方案
libvpx依赖适配的稳妥解决方案
原有直接修改源码的方案后续升级aiortc时会产生代码冲突,可使用临时环境补丁的方式实现无侵入适配:
- 先补全所有编译依赖,在MSYS2终端执行:
pacman -S mingw-w64-x86_64-libvpx mingw-w64-x86_64-python-pip mingw-w64-x86_64-python-cffi git - 拉取aiortc源码后,在源码根目录创建临时补丁脚本
patch_build.py,写入以下内容:
import sys # 临时修改平台标识适配build_vpx的依赖判断逻辑 sys.platform = "linux" exec(open("src/_cffi_src/build_vpx.py").read())
- 执行构建安装前先运行
python patch_build.py,再依次执行python setup.py build、python setup.py install即可,无需修改原仓库代码。
AttributeError及异步任务报错解决方案
解决AttributeError: module 'dns.message' has no attribute 'QueryMessage'报错
该报错由dnspython库版本不兼容导致,dnspython 2.3.0及以上版本重构了消息类结构,移除了QueryMessage接口,和当前aiortc版本依赖不匹配:
- 先卸载当前环境的dnspython:
pip uninstall -y dnspython - 安装适配的指定版本:
pip install dnspython==2.2.1
解决"Task was destroyed but it is pending!"报错
该报错由MSYS2环境下Python异步事件循环默认配置适配问题导致:
- 在应用代码入口最开头加入以下配置即可:
import asyncio asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
- 启动应用前可执行
pkill python清理残留的Python异步进程,避免进程冲突。
内容的提问来源于stack exchange,提问作者Chris P
相关产品推荐
相关产品推荐

