Python 3.11.1环境下无法运行pykinect2的问题求助
pykinect2导入出现AssertionError的解决办法
问题描述
在虚拟环境中通过pip install pykinect2安装pykinect2后,运行包含import pykinect2的代码时触发如下错误:
PS D:\PythonVenv\kinect> & d:/PythonVenv/kinect/Scripts/Activate.ps1 (kinect) PS D:\PythonVenv\kinect> & d:/PythonVenv/kinect/Scripts/python.exe d:/PythonVenv/kinect/kinectv1.py Traceback (most recent call last): File "d:\PythonVenv\kinect\kinectv1.py", line 8, in <module> from pykinect2 import PyKinectV2 File "D:\PythonVenv\kinect\Lib\site-packages\pykinect2\PyKinectV2.py", line 2216, in <module> assert sizeof(tagSTATSTG) == 72, sizeof(tagSTATSTG) ^^^^^^^^^^^^^^^^^^^^^^^^ AssertionError: 80
原因分析
该错误源于pykinect2预编译代码中,对tagSTATSTG结构体大小硬编码为72,但64位Windows环境下该结构体实际大小为80,导致断言校验失败,属于跨系统位数的兼容性问题。
解决步骤
- 找到虚拟环境内pykinect2的安装路径,示例路径为
D:\PythonVenv\kinect\Lib\site-packages\pykinect2\ - 打开
PyKinectV2.py文件,定位到第2216行的断言代码:assert sizeof(tagSTATSTG) == 72, sizeof(tagSTATSTG) - 将代码中的
72修改为80,保存文件 - 重新运行代码即可解决该断言错误
注意:若后续更新pykinect2,此修改会被覆盖,需重新执行上述步骤。
内容的提问来源于stack exchange,提问作者Sho
相关产品推荐
相关产品推荐

