【问题标题】:python 3.7 import smbus ModuleNotFoundError no module named 'smbus'python 3.7 导入 smbus ModuleNotFoundError 没有名为“smbus”的模块
【发布时间】:2018-09-08 03:50:49
【问题描述】:

我在我的树莓派零上成功构建了 python 3.7。现在当我运行我的程序时:

python3 DungeonCube.py

我收到以下错误:

import smbus
ModuleFoundError: No module named 'smbus'

我已经搜索了解决方案,似乎没有人在树莓派上使用 python 3.7 走到这一步。其他指南说要重新安装 smbus 或安装 smbus2,但这不起作用。

dpkg-query -L python3-smbus 显示:

/.
/usr
/usr/lib
/usr/lib/python3
/usr/lib/python3/dist-packages
/usr/lib/python3/dist-packages/smbus.cpython-35m-arm- 
linux-gnueabihf.so
/usr/share
/usr/share/doc
/usr/share/doc/python3-smbus
/usr/share/doc/python3-smbus/changelog.Debian.gz
/usr/share/doc/python3-smbus/changelog.gz
/usr/share/doc/python3-smbus/copyright

apt-cache show python3-smbus 显示:

Package: python3-smbus
Version: 3.1.2-3
Architecture: armhf
Maintainer: Aurelien Jarno <aurel32@debian.org>
Installed-Size: 31
Depends: libc6 (>=2.4), python3 (<< 3.6), python3 (>= 
3.5~), python3:any (>= 3.0~)
Recommends: i2c-tools
Provides: python3.5-smbus
.
.
.

任何想法如何让它工作?

加里·奥。

【问题讨论】:

    标签: python raspberry-pi python-import smbus


    【解决方案1】:

    安装在您系统上的 python3-smbus 库似乎有点旧。它适用于 Python 3.5,但不适用于 Python 3.7。

    您有两种解决方案:

    • 将您的 Python 降级为使用 Python 3.5
    • 选择另一个库:您可以尝试更新的smbus2

    【讨论】:

    • 感谢 Laurent,pip3 install smbus2 已经成功了。完成后,我必须将导入语句更改为导入 smbus2。
    • 请记住,如果您运行的是 RPi OS Lite,则必须先安装 pip3
    【解决方案2】:

    我没有 RPi 来测试这个,但是当我在 HackerSpace 时,我也在 R-Pi 上构建了 python。我遇到了同样的问题,并找到了可能对您有用的修复程序。您需要打开配置文件:“sudo nano /boot/config.txt”并在保存后添加行“dtparam=i2c_arm=on”运行“sudo raspi-config”。在高级选项下,您会发现 7l2c 选择“是”。

    【讨论】:

    • 感谢您的贡献。我检查了 config.txt 文件,我已经有了:dtparam=i2c_arm=on。我应该补充一点,在我构建 python 3.7 之前,我的程序正在使用 python 3.5.3 运行。为了验证 i2C 是否正常工作,我运行了 i2cdetect -y 1 并且 i2c 总线上的设备显示正常。
    猜你喜欢
    • 2016-08-16
    • 2020-12-21
    • 2020-08-23
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 2019-04-12
    相关资源
    最近更新 更多