python 3.7 导入 smbus ModuleNotFoundError 没有名为 'smbus' 的模块

python 3.7 import smbus ModuleNotFoundError no module named 'smbus'

我在 raspberry pi 零上成功构建了 python 3.7。现在当我 运行 我的程序使用:

python3 DungeonCube.py

我收到以下错误:

import smbus
ModuleFoundError: No module named 'smbus'

我已经搜索了解决方案,似乎没有人在 raspberry pi 上使用 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 显示 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
.
.
.

有什么想法可以让它发挥作用吗?

加里 O.

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

你有两个解决方案:

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

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