You need to enable JavaScript to run this app. Balena环境下树莓派4部署librealsense时构建文件缺失、无法导入pyrealsense2问题
优惠活动
大模型
产品
解决方案
定价
更多

Balena环境下树莓派4部署librealsense时构建文件缺失、无法导入pyrealsense2问题

问题原因与修复方案

直接触发报错的原因

librealsense/build/python目录不存在,本质是Python绑定模块根本没有被编译,CMake直接跳过了该模块的构建流程,后续拷贝、导入操作自然都会失败。

具体遗漏的配置/错误点

  • 编译命令逻辑错误

    你在CMake完成后执行的命令为make all -j4 && sudo make all,第二个make all无任何作用,编译完成后必须执行make install,才能将编译产物(包括Python绑定的.so文件)安装到系统路径,否则即使编译成功,库文件也只会散落在build目录中,不会生成可直接调用的Python模块。
  • Python版本不兼容导致绑定被跳过

    你使用的balenalib/raspberrypi3-ubuntu:xenial-build是Ubuntu 16.04镜像,自带Python3版本为3.5;且你未指定librealsense版本,默认拉取的最新版librealsense最低要求Python3.6+,CMake检测到版本不符合要求时,会直接跳过Python绑定编译。
  • CMake未显式绑定Python环境

    仅开启-DBUILD_PYTHON_BINDINGS=true不足以触发Python模块编译,旧系统下CMake如果未检测到Python解释器、头文件、库的路径,会直接跳过该模块构建,不会生成build/python目录。
  • 不必要的sudo调用

    balena基础镜像默认以root用户运行构建,不需要sudo提权,且部分balena镜像未预装sudo,多余的sudo命令可能直接执行失败。
  • 依赖缺失

    librealsense的Python绑定依赖pybind11,你当前的依赖安装列表未包含该组件,会进一步导致Python绑定编译失败。
  • 镜像适配问题

    树莓派4为armv8架构,raspberrypi3系列镜像针对armv7编译,建议更换为raspberrypi4对应的官方镜像。

修正后的Dockerfile参考

# 更换为适配树莓派4的Ubuntu 20.04镜像,自带Python3.8,满足新版librealsense要求
FROM balenalib/raspberrypi4-ubuntu:focal-build

# 移除所有sudo,默认root用户直接执行操作
RUN apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y
RUN apt-get install -y python3 \
    python3-dev \
    python3-pip \
    python3-setuptools \
    python3-pybind11 # 新增pybind11编译依赖

RUN apt-get install -y git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev cmake libglfw3-dev build-essential 
# 可指定稳定的librealsense版本,避免新版要求过高
RUN git clone --depth 1 --branch v2.53.1 https://github.com/IntelRealSense/librealsense.git
RUN cd librealsense/ && ./scripts/setup_udev_rules.sh
RUN mkdir build &&\
    cd build &&\
    # 显式指定Python3路径,强制CMake识别Python环境
    cmake /librealsense/ \
    -DBUILD_PYTHON_BINDINGS=true \
    -DBUILD_EXAMPLES=true \
    -DBUILD_GRAPHICAL_EXAMPLES=false \
    -DCMAKE_BUILD_TYPE=Release \
    -DPython3_EXECUTABLE=/usr/bin/python3 \
    -DPython3_INCLUDE_DIR=/usr/include/python3.8 \
    -DPython3_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.8.so &&\
    make all -j4 &&\
    make install # 修正为install目标,将编译产物安装到系统路径

# make install已将pyrealsense2安装到Python默认site-packages,无需手动拷贝build目录
ENV INITSYSTEM on
WORKDIR /usr/src/app
COPY ./app/ /usr/src/app/

CMD ["python3", "/usr/src/app/test_server.py"]

特殊场景说明

如果必须使用Ubuntu 16.04(xenial)镜像,需要将librealsense切换到v2.45.0及更早的版本(该版本支持Python3.5),同时将CMake中的Python3路径参数替换为对应Python3.5的路径即可。


内容的提问来源于stack exchange,提问作者ddiddi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.27 16:06:03