Ubuntu下解决ModuleNotFoundError: No module named 'freenect'问题
解决Python 3环境下OpenKinect freenect库安装问题
问题梳理
在Ubuntu桌面环境基于Python 3开发自动驾驶项目时,运行代码出现ModuleNotFoundError: No module named 'freenect'错误,安装依赖及cmake过程中还遇到以下问题:
- 依赖安装时找不到
lubusb-1.0-0-dev包 - cmake检测不到glut包
- 出现
ImportError: No module named numpy CYTHON_EXECUTABLE-NOTFOUND- cmake默认未启用Python3支持
分步解决
1. 修正依赖包名称并安装基础依赖
错误中的lubusb-1.0-0-dev是拼写错误,正确包名为libusb-1.0-0-dev。执行以下命令安装所有必需依赖:
sudo apt update sudo apt install git build-essential cmake libusb-1.0-0-dev freeglut3-dev python3-pip python3-numpy cython3
2. 重新配置cmake并启用Python3支持
之前的cmake输出显示BUILD_PYTHON3:BOOL=OFF,导致无法生成Python3版本的freenect绑定。进入libfreenect的build目录,清理原有配置后重新运行cmake:
cd /home/marijn/libfreenect/build rm -rf * cmake -DBUILD_PYTHON3=ON -DCYTHON_EXECUTABLE=/usr/bin/cython3 ..
3. 编译并安装libfreenect
完成cmake配置后,执行编译和安装:
make -j$(nproc) sudo make install sudo ldconfig
4. 验证Python3绑定是否安装成功
安装完成后,在Python3环境中测试是否能导入freenect:
import freenect print(freenect.__version__)
如果仍出现导入错误,可将libfreenect的Python模块路径添加到Python环境变量:
echo "export PYTHONPATH=/usr/local/lib/python3/dist-packages:$PYTHONPATH" >> ~/.bashrc source ~/.bashrc
额外说明
- 确保Kinect设备已正确连接并被系统识别,可通过
lsusb命令检查是否存在Microsoft Kinect设备。 - 若cmake仍提示找不到Cython,确认cython3已安装并指定正确路径(通常为
/usr/bin/cython3)。
内容的提问来源于stack exchange,提问作者Marijn
相关产品推荐
相关产品推荐

