You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Orange Pi 4B上Python调用libgpiod报‘gpiod’不是包的问题求助

问题原因与解决方案

问题根源

  • 通过sudo apt install python3-libgpiod安装的是libgpiod官方原生Python绑定,它的API结构是直接在gpiod根模块下暴露Chip、Line、Direction、Value等类,不存在gpiod.line子模块,所以你写from gpiod.line import...会触发ModuleNotFoundError。
  • 后续用pip install gpiod安装的是第三方封装的同名包,这个包的API设计和官方绑定完全不同,没有Chip属性,因此调用gpiod.Chip会报错。
  • 核心问题是两个重名包导致Python导入时混淆,加载了错误版本的模块。

解决步骤

  1. 卸载pip安装的第三方gpiod包,消除冲突:
    pip uninstall -y gpiod
    
  2. 使用官方绑定的正确导入方式:
    from gpiod import Chip, Line, Direction, Value
    
  3. 简单验证示例(以Orange Pi 4B的gpiochip0为例):
    # 打开GPIO芯片
    chip = Chip('gpiochip0')
    # 获取指定GPIO线(此处以第10号线为例)
    line = chip.get_line(10)
    # 配置为输出模式,初始电平低
    line.request(consumer='test_app', direction=Direction.OUTPUT, default_value=Value.LOW)
    # 设置输出高电平
    line.set_value(Value.HIGH)
    # 释放资源
    line.release()
    chip.close()
    
  4. 确认模块路径(排查是否还有冲突):
    在Python终端执行以下命令,若输出为系统路径(如/usr/lib/python3/dist-packages/gpiod/__init__.py)则说明官方绑定正常加载:
    import gpiod
    print(gpiod.__file__)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 19:06:04