[RDK X5][hobot-dnn][hobot-dnn][hbm_runtime]缺少libhbucp.so

hobot-dnn已安装至最新版本,运行yolo26_seg.py,显示缺少libhbucp.so,具体报错如下:

RuntimeError: Missing Horizon runtime libraries (provided by the ‘hobot-dnn’ package):libhbucp.so (Horizon UCP library) - libhbucp.so: cannot open shared object file: No such file or directory

你好!这个问题通常是因为底层运行时库(hbm-runtime)未安装或版本不匹配导致的,即使 hobot-dnn Python 包已安装,如果缺少底层的 .so 动态库,也会报这个错。

libhbucp.so 是 Horizon BPU 通信相关的底层库,通常包含在系统级的 hbm-runtimehobot-dnn 的 C++ 依赖包中,而不是纯 Python 包里。

请按以下步骤排查解决:

1. 确认系统版本与已安装包

首先确认你的板卡系统版本,以及当前安装的 hobot 相关包。请在终端执行:

# 查看系统版本
sudo cat /etc/version

# 查看已安装的 hobot 相关 deb 包
dpkg -l | grep hobot

# 查看已安装的 hbm 相关 deb 包
dpkg -l | grep hbm

请将上述命令的输出结果回复在帖子中,这对判断版本兼容性至关重要。

2. 尝试安装/重装底层运行时库

在 RDK X5 较新的系统镜像(如 3.1.1/3.2.3+)中,hobot-dnn 强依赖 hbm-runtime。尝试执行以下命令补全依赖:

# 更新源
sudo apt update

# 尝试安装 hbm-runtime (包名可能因系统版本略有不同,尝试以下常见名称)
sudo apt install hbm-runtime
# 或者
sudo apt install hobot-dnn-runtime

如果 apt 提示找不到包,说明你的软件源可能未配置好,或者系统镜像版本较老/较新导致包名变更。

3. 检查库文件是否存在

如果包已安装但仍报错,检查库文件是否真的在系统路径中:

# 查找 libhbucp.so 的位置
sudo find / -name "libhbucp.so" 2>/dev/null
  • 如果找到了(例如在 /usr/lib/aarch64-linux-gnu//opt/horizon/lib/):
    说明库存在但环境变量没生效。执行:

    # 临时导出路径 (根据实际找到的路径修改)
    export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH
    # 再次运行你的脚本
    python3 yolo26_seg.py
    

    如果临时导出有效,请将 export 命令加入 ~/.bashrc

  • 如果没找到
    说明底层库确实缺失。这通常发生在:

    1. 系统镜像过旧:早期镜像可能不包含新版 hobot-dnn 所需的库。建议刷写 最新系统镜像
    2. Python 包与系统不匹配:如果你手动 pip install 了新版 hobot-dnn,但系统底层的 deb 包是旧版的,会导致不兼容。建议优先使用系统自带的 apt 包,不要随意用 pip 覆盖系统包。

4. 快速验证方案(推荐)

如果你不确定具体缺哪个包,且系统允许重置,最稳妥的方法是:

  1. 确认系统镜像版本:确保是 3.1.1 或更新版本(3.2.3/3.5.0)。
  2. 重装官方示例环境
    sudo apt install --reinstall hobot-dnn hbm-runtime
    
    (注:如果提示包不存在,请检查 /etc/apt/sources.list 是否配置了正确的 Horizon 源)

关键信息补充

为了更精准地帮你定位,请补充以下信息:

  1. sudo cat /etc/version 的输出。
  2. 你是如何安装 hobot-dnn 的?(apt install 还是 pip install?)
  3. yolo26_seg.py 是官方例程还是你自己写的?如果是官方的,来自哪个 SDK 版本?

建议先执行 步骤 2步骤 3,通常能解决 90% 的此类问题。如果不行,请把步骤 1 的输出发出来,我们进一步分析。

libhbucp.so 是 BPU 底层库,建议排查是否使用的最新版本的镜像,此库为镜像自带

您好,尝试使用rdk_os_3.4.1-2025-12-9以及beta版本镜像,仍显示无法找到,您看是否需排查其他方面,谢谢

您好!既然 3.4.1 和 beta 镜像都试过仍有问题,说明不是镜像版本问题,需要更深度排查。请按以下步骤操作:

1. 完整环境信息收集

请执行以下命令并回复完整输出

# 系统版本
sudo cat /etc/version

# 查看所有 hobot/hbm 相关包
dpkg -l | grep -E "hobot|hbm"

# 查找库文件(可能在不同位置)
sudo find /usr /opt -name "*hbucp*" 2>/dev/null

# 检查当前环境变量
echo $LD_LIBRARY_PATH

# 查看 hobot-dnn 包的安装位置
dpkg -L hobot-dnn 2>/dev/null | head -30

2. 重点排查方向

情况 A:库文件存在但路径未生效

如果 find 命令找到了 libhbucp.so(比如在 /opt/horizon/lib//usr/lib/hobot/),但程序找不到:

# 假设找到路径是 /opt/horizon/lib/
export LD_LIBRARY_PATH=/opt/horizon/lib:$LD_LIBRARY_PATH
# 永久生效,加入 ~/.bashrc
echo 'export LD_LIBRARY_PATH=/opt/horizon/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

情况 B:库文件确实不存在

如果 find 完全找不到,说明包安装不完整。尝试:

# 清理并重装
sudo apt remove --purge hobot-dnn hbm-runtime
sudo apt update
sudo apt install hobot-dnn hbm-runtime

# 或者尝试安装完整 SDK
sudo apt install hobot-dnn-complete

情况 C:Python 包与系统包不匹配

如果你之前用 pip install hobot-dnn 覆盖过系统包:

# 卸载 pip 版本
pip3 uninstall hobot-dnn

# 只用系统 apt 包
sudo apt install --reinstall hobot-dnn

3. 验证库依赖关系

检查 hobot-dnn 包应该提供哪些库文件:

# 查看 hobot-dnn 包包含的文件
dpkg -L hobot-dnn | grep "\.so"

# 或者查看 hbm-runtime 包
dpkg -L hbm-runtime | grep "\.so"

4. 临时解决方案(应急用)

如果急需运行,可以尝试从其他正常板卡拷贝库文件:

# 从正常板卡拷贝(需要另一台正常的 RDK X5)
scp user@normal-x5:/usr/lib/aarch64-linux-gnu/libhbucp.so ./
sudo cp libhbucp.so /usr/lib/aarch64-linux-gnu/
sudo ldconfig

5. 关键问题确认

请确认以下几点:

  1. yolo26_seg.py 来源:是官方 SDK 例程还是第三方代码?如果是官方的,来自哪个 SDK 版本?
  2. Python 环境:使用的是系统 Python (/usr/bin/python3) 还是虚拟环境?
  3. 是否有手动修改过系统:之前是否手动安装过其他版本的 hobot 包或修改过 /etc/ld.so.conf

请先执行步骤 1 的命令,把输出结果发出来,这样我能精准判断是包安装问题、路径问题还是版本兼容问题。

如果方便,也可以提供 ldd 检查结果:

# 找到 hobot_dnn 的 .so 文件,检查其依赖
ldd $(python3 -c "import hobot_dnn; print(hobot_dnn.__file__)") 2>&1 | grep "not found"

这会直接显示缺少哪些依赖库。

yolo26_seg.py 上传错文件,近两天修复

好的,谢谢,麻烦了

您好!问题已经明确了:yolo26_seg.py 文件上传有误,官方会在近两天修复,所以您遇到的报错不是环境问题,而是示例文件本身的缺陷。

:pushpin: 当前建议

  1. 等待官方修复

    • 关注本帖更新,管理员会在修复后通知
    • 修复后会重新上传正确的示例文件
  2. 临时替代方案(如急需测试)
    可以先使用其他已验证的 YOLO 示例:

    # 查看官方示例目录中其他可用的推理脚本
    ls /opt/horizon/examples/  # 或您的示例路径
    
    # 尝试其他 YOLO 示例(如果存在)
    python3 yolo11_seg.py
    python3 yolo8_seg.py
    
  3. 验证环境是否正常
    在等待修复期间,可以用其他示例验证您的 hobot-dnn 环境是否配置正确:

    # 运行一个简单的推理测试
    python3 -c "import hobot_dnn; print('hobot_dnn 导入成功')"
    

    如果能成功导入,说明您的环境没问题,只需等待文件修复即可。

:loudspeaker: 后续跟进

  • 修复后本帖会有更新通知
  • 如有其他问题,欢迎继续提问

感谢您的耐心等待!:folded_hands:

修复了吗,为什么det.py还是有这个问题

您好!目前官方尚未在本帖更新修复通知,det.py 出现同样问题可能有两种情况:

:magnifying_glass_tilted_left: 问题可能性分析

  1. 示例文件问题:如果多个示例文件(yolo26_seg.pydet.py)都有同样报错,可能是 SDK 包中示例代码的导入逻辑有误
  2. 环境配置问题:更可能是您的环境中 hbm-runtime 库确实未正确安装或路径未生效

:clipboard: 请先执行以下诊断命令

为了精准判断是文件问题还是环境问题,请执行:

# 1. 确认系统版本
sudo cat /etc/version

# 2. 检查 hobot/hbm 相关包是否安装
dpkg -l | grep -E "hobot|hbm"

# 3. 查找 libhbucp.so 是否存在
sudo find /usr /opt -name "libhbucp.so" 2>/dev/null

# 4. 验证 hobot_dnn 能否正常导入
python3 -c "import hobot_dnn; print('导入成功:', hobot_dnn.__version__)"

# 5. 检查 hobot_dnn 的依赖库
ldd $(python3 -c "import hobot_dnn; print(hobot_dnn.__file__)") 2>&1 | grep "not found"

请将以上 5 条命令的输出结果回复在帖子中,这对定位问题至关重要。


:hammer_and_wrench: 临时解决方案(可先尝试)

如果 find 命令找到了 libhbucp.so,只是路径问题:

# 假设找到路径是 /opt/horizon/lib/ 或 /usr/lib/aarch64-linux-gnu/
export LD_LIBRARY_PATH=/opt/horizon/lib:$LD_LIBRARY_PATH
# 或
export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH

# 再次运行 det.py
python3 det.py

如果找不到库文件,尝试重装:

sudo apt update
sudo apt install --reinstall hobot-dnn hbm-runtime
sudo ldconfig

:pushpin: 关键信息确认

请补充说明:

  1. det.py 是官方 SDK 自带的示例,还是您自己修改的?
  2. 您使用的系统镜像具体版本(sudo cat /etc/version 输出)
  3. 是否使用虚拟环境?(which python3 查看路径)

等待您的诊断结果,我们会进一步协助排查!:folded_hands:

seg.py 已经修复 det.py 没有用过hbm_runtiem这个库。建议检查是否使用了对应板卡仓库

3.5.0系统版本有消息了吗,之前说3月底,有点着急啊

您好!关于 RDK X5 3.5.0 系统版本的进度,根据社区最新信息:

:date: 当前状态

  • 原计划:2026 年 3 月底发布
  • 最新版本动态:目前 3.5.0 系统 + SDK 1.1.2 仍处于回归测试阶段,尚未正式发布
  • 主要修复内容
    • 修复 CAN 卡死问题
    • 支持 bpu_infer_lib_x5
    • 优化 hbm-runtime 依赖管理

:magnifying_glass_tilted_left: 建议方案

方案 1:继续使用当前版本(推荐)

如果您当前使用的是 3.4.1 或更新版本,且主要使用 hobot_dnn

  • det.pyseg.py 示例已修复
  • 确保使用正确的板卡仓库和官方源
  • 参考管理员建议:检查是否使用了对应板卡的仓库

方案 2:等待 3.5.0 正式版

如果您的项目依赖:

  • bpu_infer_lib_x5
  • CAN 总线稳定性
  • 最新的 hbm-runtime 管理

建议再等待 1-2 周,官方会在 系统镜像页面 发布更新通知。

方案 3:联系官方获取测试版

如项目紧急,可尝试:

  • 通过地平线官方技术支持渠道申请测试版
  • 在社区私信管理员 Marcelo6151 询问测试版获取方式

:pushpin: 当前问题排查重点

您遇到的 libhbucp.so 问题,根据管理员最新回复:

“seg.py 已经修复 det.py 没有用过 hbm_runtime 这个库。建议检查是否使用了对应板卡仓库”

请确认:

  1. 软件源配置正确
    cat /etc/apt/sources.list
    # 应包含 Horizon 官方源
    
  2. 使用系统自带 Python,避免虚拟环境冲突
  3. 重装官方包
    sudo apt update
    sudo apt install --reinstall hobot-dnn hbm-runtime
    

如有紧急需求,建议在本帖继续追问或私信管理员获取最新进度!:folded_hands:

root@ubuntu:~# sudo apt install hbm-runtime
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
E: Unable to locate package hbm-runtime
root@ubuntu:~# sudo apt install hobot-dnn-runtime
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
E: Unable to locate package hobot-dnn-runtime

您好!看到您尝试安装 hbm-runtimehobot-dnn-runtime 都失败了,这说明您的软件源配置可能有问题,或者包名在当前系统版本中已变更

在 RDK X5 较新的系统镜像中,hobot-dnn 和相关运行时库通常是系统预装的,不需要单独 apt install。如果找不到包,请按以下步骤排查:

:magnifying_glass_tilted_left: 第一步:确认软件源配置

请执行以下命令检查您的 apt 源:

cat /etc/apt/sources.list
cat /etc/apt/sources.list.d/*.list 2>/dev/null

正常情况下应该包含 Horizon 官方源,例如:

deb [trusted=yes] https://mirrors.d-robotics.cc/rdk/ <codename> main

如果源配置缺失或错误,会导致所有 hobot 相关包都找不到。

:clipboard: 第二步:确认系统预装情况

在 RDK X5 新镜像中,hobot-dnn 通常是预装的。请检查:

# 查看系统版本
sudo cat /etc/version

# 检查 hobot-dnn 是否已安装(Python 包)
python3 -c "import hobot_dnn; print('版本:', hobot_dnn.__version__)"

# 查看所有已安装的 hobot 相关 deb 包
dpkg -l | grep hobot

# 查找 libhbucp.so 是否已存在
sudo find /usr /opt -name "libhbucp.so" 2>/dev/null

:hammer_and_wrench: 第三步:根据结果处理

情况 A:hobot_dnn Python 包能导入,但找不到 libhbucp.so

这说明环境变量路径未生效

# 查找库文件可能的位置
sudo find / -name "*hbucp*" 2>/dev/null

# 如果找到(比如在 /opt/horizon/lib/),添加路径
export LD_LIBRARY_PATH=/opt/horizon/lib:$LD_LIBRARY_PATH
echo 'export LD_LIBRARY_PATH=/opt/horizon/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

情况 B:hobot_dnn Python 包都无法导入

说明环境确实有问题,尝试:

# 更新源
sudo apt update

# 查看可用的 hobot 相关包(搜索而非直接安装)
apt search hobot | head -20
apt search horizon | head -20

# 尝试安装主包(包名可能是 hobot-dnn 而非 hobot-dnn-runtime)
sudo apt install hobot-dnn

情况 C:源配置错误或缺失

如果 apt search 也找不到任何 hobot 包,需要修复软件源:

  1. 参考官方文档重新配置软件源:RDK X5 软件源配置
  2. 或者重新刷写最新系统镜像(推荐)

:light_bulb: 关键提示

根据本帖管理员 Marcelo6151 的最新回复:

“seg.py 已经修复 det.py 没有用过 hbm_runtime 这个库。建议检查是否使用了对应板卡仓库”

重点检查

  1. 您是否使用了正确的板卡对应仓库(X5 不要用 X3 的源)
  2. det.py 如果报错,可能是代码本身问题,而非缺少 hbm-runtime
  3. 优先使用系统预装环境,不要随意用 pip 覆盖

:pushpin: 请回复以下信息

为了精准帮您定位,请提供:

  1. sudo cat /etc/version 输出
  2. python3 -c "import hobot_dnn; print(hobot_dnn.__version__)" 结果
  3. cat /etc/apt/sources.list 内容
  4. dpkg -l | grep hobot 输出

这样我们能判断是源配置问题、环境问题还是代码问题!:folded_hands:

root@ubuntu:~# cat /etc/apt/sources.list

See UpgradeNotes - Community Help Wiki for how to upgrade to

newer versions of the distribution.

deb http://ports.ubuntu.com/ jammy main restricted universe multiverse
#deb-src Index of /ubuntu-ports/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror jammy main restricted universe multiverse

deb http://ports.ubuntu.com/ jammy-security main restricted universe multiverse
#deb-src Index of /ubuntu-ports/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror jammy-security main restricted universe multiverse

deb http://ports.ubuntu.com/ jammy-updates main restricted universe multiverse
#deb-src Index of /ubuntu-ports/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror jammy-updates main restricted universe multiverse

deb http://ports.ubuntu.com/ jammy-backports main restricted universe multiverse
#deb-src Index of /ubuntu-ports/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror jammy-backports main restricted universe multiverse
root@ubuntu:~# cat /etc/apt/sources.list.d/*.list 2>/dev/null
deb [arch=arm64 signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu jammy main

=== X5_START ===

deb [signed-by=/usr/share/keyrings/sunrise.gpg] Index of /ubuntu-rdk-x5/ jammy main

=== X5_END ===

root@ubuntu:~# sudo cat /etc/version
3.5.0
root@ubuntu:~# python3 -c “import hobot_dnn; print(‘版本:’, hobot_dnn.version)”
Traceback (most recent call last):
File “”, line 1, in
AttributeError: module ‘hobot_dnn’ has no attribute ‘version
root@ubuntu:~# sudo find /usr /opt -name “libhbucp.so” 2>/dev/null

您好!根据您提供的诊断信息,问题已经非常清晰了:

:bar_chart: 当前状态分析

检查项 结果 说明
系统版本 :white_check_mark: 3.5.0 最新版本
软件源 :white_check_mark: 已配置 X5 源 archive.d-robotics.cc/ubuntu-rdk-x5
hobot_dnn :white_check_mark: 可导入 但无 __version__ 属性
libhbucp.so :cross_mark: 未找到 核心问题

:magnifying_glass_tilted_left: 深度排查步骤

请按顺序执行以下命令,帮助定位库文件缺失原因:

# 1. 查看 hobot-dnn 包安装了哪些文件
dpkg -L hobot-dnn 2>/dev/null | grep -E "\.so|lib"

# 2. 查看所有 hobot/hbm 相关的 deb 包
dpkg -l | grep -E "hobot|hbm|horizon"

# 3. 扩大搜索范围查找 hbucp
sudo find / -name "*hbucp*" 2>/dev/null

# 4. 检查 hobot_dnn 模块的实际路径
python3 -c "import hobot_dnn; print(hobot_dnn.__file__)"

# 5. 查看该路径下的所有文件
ls -la $(python3 -c "import hobot_dnn; import os; print(os.path.dirname(hobot_dnn.__file__))")

:hammer_and_wrench: 可能解决方案

方案 1:重装 hobot-dnn 包(推荐先试)

sudo apt update
sudo apt install --reinstall hobot-dnn
sudo ldconfig

方案 2:检查是否有独立的运行时包

# 搜索可用的运行时包
apt search hbm
apt search horizon-runtime

如果有发现类似 hbm-runtimehorizon-ucp 等包,尝试安装:

sudo apt install <包名>

方案 3:检查库文件是否在标准路径

# 检查标准库路径
ls -la /usr/lib/aarch64-linux-gnu/ | grep hobot
ls -la /usr/lib/ | grep hobot
ls -la /opt/horizon/lib/ 2>/dev/null

:warning: 重要提示

根据本帖管理员 Marcelo6151 之前的回复:

“det.py 没有用过 hbm_runtime 这个库。建议检查是否使用了对应板卡仓库”

如果您的 det.py 报错与 yolo26_seg.py 相同,可能是:

  1. 示例代码本身有引用错误(引用了不存在的库)
  2. 3.5.0 版本中库的依赖关系有变化

:pushpin: 请回复以下命令的输出

dpkg -L hobot-dnn 2>/dev/null | grep -E "\.so|lib"
dpkg -l | grep -E "hobot|hbm|horizon"
python3 -c "import hobot_dnn; import os; print(os.path.dirname(hobot_dnn.__file__))"

这样我能判断是包安装不完整还是3.5.0 版本变更导致的问题。如果确认是版本问题,我会联系管理员进一步确认!:folded_hands:

root@ubuntu:~# python3 -c “import hobot_dnn; print(hobot_dnn.file)”
/usr/local/lib/python3.10/dist-packages/hobot_dnn/init.py
root@ubuntu:~# sudo apt update
Hit:1 Index of /ubuntu-rdk-x5/ jammy InRelease
Hit:2 http://ports.ubuntu.com jammy InRelease
Hit:3 http://packages.ros.org/ros2/ubuntu jammy InRelease
Get:4 http://ports.ubuntu.com jammy-security InRelease [129 kB]
Get:5 http://ports.ubuntu.com jammy-updates InRelease [128 kB]
Hit:6 http://ports.ubuntu.com jammy-backports InRelease
Get:7 http://ports.ubuntu.com jammy-security/main arm64 Packages [3,137 kB]
Get:8 http://ports.ubuntu.com jammy-security/universe arm64 Packages [1,093 kB]
Get:9 http://ports.ubuntu.com jammy-security/universe Translation-en [229 kB]
Get:10 http://ports.ubuntu.com jammy-updates/main arm64 Packages [3,398 kB]
Get:11 http://ports.ubuntu.com jammy-updates/restricted arm64 Packages [6,147 kB]
Get:12 http://ports.ubuntu.com jammy-updates/restricted Translation-en [1,154 kB]
Get:13 http://ports.ubuntu.com jammy-updates/universe arm64 Packages [1,325 kB]
Get:14 http://ports.ubuntu.com jammy-updates/universe Translation-en [318 kB]
Fetched 17.1 MB in 13s (1,289 kB/s)
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
465 packages can be upgraded. Run ‘apt list --upgradable’ to see them.
root@ubuntu:~# sudo apt install --reinstall hobot-dnn
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
The following package was automatically installed and is no longer required:
libllvm13
Use ‘sudo apt autoremove’ to remove it.
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 465 not upgraded.
Need to get 7,681 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 Index of /ubuntu-rdk-x5/ jammy/main arm64 hobot-dnn arm64 3.0.4-20260409110123 [7,681 kB]
Fetched 7,681 kB in 1s (10.5 MB/s)
(Reading database … 203455 files and directories currently installed.)
Preparing to unpack …/hobot-dnn_3.0.4-20260409110123_arm64.deb …
Unpacking hobot-dnn (3.0.4-20260409110123) over (3.0.4-20260409110123) …
Setting up hobot-dnn (3.0.4-20260409110123) …
Processing triggers for libc-bin (2.35-0ubuntu3.10) …
root@ubuntu:~# apt search hbm
Sorting… Done
Full Text Search… Done
kodi-visualization-fishbmc/jammy 19.0.0+ds1-1 arm64
Fishbmc audio visualization addon for Kodi

python3-hbmqtt/jammy 0.9.6-1 all
MQTT client/broker for asyncio

tros-humble-hbm-img-msgs/unknown,now 2.0.0-jammy.20241225.031409 arm64 [installed]
TogetheROS hbmem image messages

root@ubuntu:~# apt search horizon-runtime
Sorting… Done
Full Text Search… Done

您好!从您的输出中发现了一个关键问题

:magnifying_glass_tilted_left: 核心问题定位

/usr/local/lib/python3.10/dist-packages/hobot_dnn/__init__.py

这个路径说明您的 hobot_dnnpip 安装的,而不是系统 apt 包的路径(apt 包通常在 /usr/lib/python3/dist-packages/)。

这导致了 Python 包与系统底层库不匹配

  • pip 安装的 hobot-dnn (3.0.4) 需要对应的底层 .so
  • 但 apt 安装的 hobot-dnn deb 包提供的库文件路径可能未被 pip 版本识别

:hammer_and_wrench: 解决方案

方案 1:卸载 pip 版本,只用系统 apt 包(推荐)

# 1. 卸载 pip 版本
pip3 uninstall hobot-dnn -y

# 2. 确认 apt 包已安装
dpkg -L hobot-dnn | grep "\.so"

# 3. 刷新动态库缓存
sudo ldconfig

# 4. 验证导入
python3 -c "import hobot_dnn; print('路径:', hobot_dnn.__file__)"

方案 2:查找 apt 包提供的库文件位置

# 查看 hobot-dnn deb 包安装了哪些库文件
dpkg -L hobot-dnn | grep "\.so"

# 检查这些库是否在标准路径
ls -la /usr/lib/aarch64-linux-gnu/ | grep hb
ls -la /opt/horizon/lib/ 2>/dev/null

方案 3:检查是否有独立的运行时包

# 搜索所有 horizon/hobot 相关包
apt search hobot | grep -E "runtime|lib"
dpkg -l | grep -E "hobot|hbm|horizon"

:pushpin: 请执行以下命令并回复输出

# 1. 卸载 pip 版本后验证
pip3 uninstall hobot-dnn -y 2>/dev/null
python3 -c "import hobot_dnn; print('路径:', hobot_dnn.__file__)"

# 2. 查看 apt 包提供的库文件
dpkg -L hobot-dnn | grep "\.so"

# 3. 再次查找 libhbucp.so
sudo find / -name "*hbucp*" 2>/dev/null

# 4. 查看所有 hobot 相关 deb 包
dpkg -l | grep -E "hobot|hbm|horizon"

:warning: 预期结果

如果一切正常:

  • hobot_dnn.__file__ 应该指向 /usr/lib/python3/dist-packages//usr/lib/aarch64-linux-gnu/
  • dpkg -L hobot-dnn 应该列出多个 .so 文件,包括 libhbucp.so
  • find 命令应该能找到 libhbucp.so

如果还是找不到,可能是 3.5.0 版本中库的打包方式有变化,需要联系管理员确认是否需要额外安装运行时包。

请先执行上述命令,把输出发出来,我们继续排查!:folded_hands:

root@ubuntu:~# pip3 uninstall hobot-dnn -y
Found existing installation: hobot_dnn 3.0.9
Uninstalling hobot_dnn-3.0.9:
Successfully uninstalled hobot_dnn-3.0.9
WARNING: Running pip as the ‘root’ user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: 12. Virtual Environments and Packages — Python 3.14.5 documentation
root@ubuntu:~# dpkg -L hobot-dnn | grep “.so”
/etc/ld.so.conf.d
/etc/ld.so.conf.d/hobot-dnn.conf
/usr/lib/libdnn.so
/usr/lib/libhbrt_bayes_aarch64.so
/usr/lib/libopencv_world.so.3.4.5
/usr/lib/libopencv_world.so
/usr/lib/libopencv_world.so.3.4
root@ubuntu:~# sudo ldconfig
root@ubuntu:~# python3 -c “import hobot_dnn; print(‘路径:’, hobot_dnn.file)”
Traceback (most recent call last):
File “”, line 1, in
ModuleNotFoundError: No module named ‘hobot_dnn’