树莓派使用DHT22传感器运行Python代码时Adafruit_DHT导入错误求助
问题排查与解决方案
核心问题为多Python版本环境下的模块安装路径不匹配:你终端执行例子时调用的是默认的Python2版本,Adafruit_DHT模块仅安装在Python2的库路径中;而IDLE运行代码时调用的是Python3.4版本,该版本下未安装对应模块,因此触发导入错误。
步骤1:验证问题
在终端依次执行以下命令,确认问题匹配:
- 查看默认Python版本,返回结果应为Python2.x:
python --version
- 查看Python3版本,返回结果应为3.4,与报错信息中的版本一致:
python3 --version
- 验证Python2已安装模块,执行后返回
ok:
python -c "import Adafruit_DHT; print('ok')"
- 验证Python3未安装模块,执行后会触发和IDLE一致的导入错误:
python3 -c "import Adafruit_DHT; print('ok')"
步骤2:可选解决方法
方法1(推荐):为Python3安装Adafruit_DHT模块
适配你IDLE使用的Python3环境,安装后可直接在IDLE运行代码:
- 先安装Python3依赖:
sudo apt-get update sudo apt-get install python3-pip python3-dev build-essential
- 进入你之前跑官方示例的源码目录,编译安装适配Python3的模块:
cd ~/Adafruit_Python_DHT sudo python3 setup.py install
- 安装完成后再次执行
python3 -c "import Adafruit_DHT; print('ok')",返回ok即安装成功,回到IDLE运行你的代码即可正常读取温湿度。
方法2:直接用Python2运行你的代码
无需额外安装模块,直接在终端调用Python2运行你写的代码即可:
python "/home/pi/hopeful dht run.py"
注意文件名包含空格,需要用引号包裹路径。
小提示:你的代码注释中存在拼写错误sensore,正确拼写为sensor,不影响运行,可按需修改。
内容的提问来源于stack exchange,提问作者izzycpeter
相关产品推荐
相关产品推荐

