CMake无法找到Python开发目录:Jetson Xavier NX安装librealsense求助
问题:Jetson Xavier NX(Ubuntu20.04)安装librealsense v2.50 Python绑定失败
环境与操作
- 硬件:Jetson Xavier NX
- 系统:Ubuntu 20.04
- 目标:安装带Python绑定的librealsense v2.50
执行的CMake命令:
~/Downloads/librealsense-2.50.0/build$ cmake ../ -DFORCE_LIBUVC=true\ -DCMAKE_BUILD_TYPE=release \ -DBUILD_WITH_CUDA=true -DBUILD_PYTHON_BINDINGS=true\ -DBUILD_NODEJS_BINDINGS=true -DPYTHON_EXECUTABLE=/usr/bin/python3\ -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=true\ -DPYTHON_INCLUDE_DIR=/usr/include/python3.8 \ -DPYTHON_LIBRARY=/usr/lib/libpython3.8.so
CMake前期输出:
CMake Warning: -- Checking internet connection... -- Internet connection identified CMake Deprecation Warning at CMakeLists.txt:9 (MESSAGE): FORCE_LIBUVC, FORCE_WINUSB_UVC and ANDROID_USB_HOST_UVC are deprecated, use FORCE_RSUSB_BACKEND instead -- Info: REALSENSE_VERSION_STRING=2.50.0 -- Setting Unix configurations -- Info: Building with CUDA requires CMake v3.8+ -- CUDA_LIBRARIES: /usr/local/cuda-11.4/include /usr/local/cuda-11.4/lib64/libcudart_static.a;Threads::Threads;dl;/usr/lib/aarch64-linux-gnu/librt.so;/usr/local/cuda-11.4/lib64/libcusparse.so;/usr/local/cuda-11.4/lib64/libcublas.so -- Building libcurl enabled -- using RS2_USE_LIBUVC_BACKEND -- Configuring done (0.1s) -- Generating done (0.0s) -- Build files have been written to: /home/marvin/Downloads/librealsense-2.50.0/build/external-projects/pybind11 [ 12%] Performing update step for 'pybind11' [ 25%] No patch step for 'pybind11' [ 37%] No configure step for 'pybind11' [ 50%] No build step for 'pybind11' [ 62%] No install step for 'pybind11' [ 75%] Completed 'pybind11' [100%] Built target pybind11 -- pybind11 v2.6.2
随后出现的错误:
CMake Error at /usr/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find Python (missing: Python_INCLUDE_DIRS Development Development.Module Development.Embed) (found version "2.7.18") Call Stack (most recent call first): /usr/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE) /usr/share/cmake-3.26/Modules/FindPython.cmake:622 (find_package_handle_standard_args) wrappers/python/CMakeLists.txt:63 (find_package)
解决方法
方法1:修改CMake的FindPython模块
(不推荐直接修改系统文件,建议复制该文件到项目目录下修改,再指定CMake使用项目内的模块)
- 找到系统文件路径:
/usr/share/cmake-3.26/Modules/FindPython.cmake - 打开文件,定位到调用
find_package_handle_standard_args的代码段(对应错误提示的第622行) - 将参数里的
Development、Development.Module、Development.Embed移除,重新执行CMake命令
方法2:明确指定完整Python参数,修正路径
原有命令里的Python库路径在aarch64架构的Jetson上可能有误,补充更多明确参数:
cmake ../ -DFORCE_LIBUVC=true\ -DCMAKE_BUILD_TYPE=release \ -DBUILD_WITH_CUDA=true -DBUILD_PYTHON_BINDINGS=true\ -DBUILD_NODEJS_BINDINGS=true -DPYTHON_EXECUTABLE=/usr/bin/python3.8\ -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=true\ -DPYTHON_INCLUDE_DIR=/usr/include/python3.8 \ -DPYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.8.so\ -DPython_INCLUDE_DIRS=/usr/include/python3.8\ -DPython_LIBRARIES=/usr/lib/aarch64-linux-gnu/libpython3.8.so\ -DPython_VERSION=3.8
方法3:安装Python3.8开发包
缺失Development组件通常是因为没装Python开发包,执行以下命令安装后重新运行CMake:
sudo apt-get install python3.8-dev
内容的提问来源于stack exchange,提问作者Bilal
相关产品推荐
相关产品推荐

