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

树莓派Zero W+Berryconda3环境下Python3无法导入Adafruit_DHT求助

解决Berryconda3环境下Python3无法导入Adafruit_DHT的问题

我明白你折腾10小时有多崩溃,这个问题本质是系统Python3和Berryconda3的环境完全隔离,你之前的安装操作都把包放到了系统Python的目录里,而conda的Python只会检索自己环境下的包目录。咱们一步步来搞定:

步骤1:激活Berryconda3环境

首先得确保你操作的是conda专属的Python环境,而不是系统默认的:

source ~/berryconda3/bin/activate

激活后命令行提示符会多出(base)(或你自定义的环境名),这时候才是在conda环境内操作。

步骤2:用conda环境的Python手动编译安装Adafruit_DHT

你之前已经下载过Adafruit的DHT源码包了,直接进入源码目录:

cd Adafruit_Python_DHT

关键操作:用conda自己的Python3执行安装命令,不要用系统的python3,这样安装路径会自动指向conda环境的包目录:

~/berryconda3/bin/python3 setup.py install --force-pi

这个命令会把Adafruit_DHT直接装到你的Berryconda3环境里,而不是系统的/usr/local/lib/python3.5/dist-packages。

步骤3:解决platform_detect缺失的问题

如果安装后仍提示缺少这个模块,不用慌,它就在你下载的源码包里。先找到conda环境的site-packages路径:

~/berryconda3/bin/python3 -c "import site; print(site.getsitepackages()[0])"

把输出的路径(比如~/berryconda3/lib/python3.6/site-packages)记下来,然后把源码里的Adafruit_DHT目录复制过去:

cp -r Adafruit_Python_DHT/Adafruit_DHT <刚才输出的路径>/

步骤4:验证安装是否成功

在激活的conda环境里启动Python3,测试导入和传感器读取:

import Adafruit_DHT

# 替换成你的传感器型号和实际接线引脚
sensor = Adafruit_DHT.DHT11
pin = 4

humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
if humidity is not None and temperature is not None:
    print(f'Temp={temperature:.1f}*C  Humidity={humidity:.1f}%')
else:
    print('Failed to get reading. Check your wiring!')

如果能正常输出温湿度,就彻底解决问题了。

为什么之前的方法没用?

  • 用sudo python3 setup.py install是给系统Python3装包,conda的Python根本检索不到;
  • 复制egg文件没用,因为conda环境的包管理结构和系统Python不同,必须通过conda环境自身的Python完成安装;
  • 直接调用pip3会提示命令找不到,因为conda环境的pip没加入系统PATH,得用~/berryconda3/bin/python3 -m pip来调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:34:49