在尝试通过pip下载libfreenect时,找不到满足要求的版本(可用版本:无)
我正在按照安装gravbox v1.0的说明进行操作。说明中说要下载几个Python包,除了libfreenect外,其他包都能正常工作。libfreenect给出了一个错误,我已将错误信息复制在下方。
user:\~$ pip install libfreenect
由于普通的site-packages目录不可写,默认使用用户安装。
ERROR: 找不到符合要求libfreenect的版本(可用版本:无)
ERROR: 未找到与libfreenect匹配的发行版
我尝试用Gemini来帮忙,但它给出的方案并没有奏效,我担心它可能会把我带错路,或让我下载到会出错的软件包。
Gemini的方案:
sudo apt-get update
sudo apt-get instal libfreenect
pip install --upgrade setuptools wheel
pip install cython setuptools
pip install freenect --no-build-isolation
我确实执行了上述命令,如果因此有问题,请也一并考虑。
解决方案
错误是预期之中的。pip install libfreenect 要求pip从 PyPI下载一个名为 libfreenect 的包,但在该名称下没有PyPI项目,因此pip会正确地显示:
No matching distribution found for libfreenect
libfreenect 并非主要的pip包。它是用于Kinect设备的OpenKinect原生驱动/库。Python模块是围绕该原生库构建的包装,导入时是作为 freenect,而不是 libfreenect。OpenKinect指导使用CMake构建库,并使用 -DBUILD_PYTHON3=ON 启用Python 3的包装。
在Ubuntu/Debian上,先检查你的发行版是否已经提供这些软件包:
sudo apt update
apt-cache search freenect
如果有,请尝试发行版提供的软件包:
sudo apt install freenect libfreenect-dev python3-freenect
python3 -c "import freenect; print('ok')"
如果在你的Ubuntu版本中找不到 python3-freenect,请从源码构建:
sudo apt update
sudo apt install git cmake build-essential libusb-1.0-0-dev \
freeglut3-dev libxmu-dev libxi-dev python3-dev python3-numpy cython3
git clone https://github.com/OpenKinect/libfreenect.git
cd libfreenect
mkdir build
cd build
cmake .. -DBUILD_PYTHON3=ON
make -j"$(nproc)"
sudo make install
sudo ldconfig
python3 -c "import freenect; print('ok')"
另请注意:如果你在使用Kinect v2 / Xbox One Kinect,不应使用 libfreenect;OpenKinect建议改用 libfreenect2。
你已经执行的命令很可能并没有“搞坏”任何东西。sudo apt-get update 是无害的,安装诸如 setuptools、wheel 或 cython 这样的构建工具也是正常的。主要的问题只是 libfreenect 是用pip安装的错误目标。