DHT22传感器导入Adafruit_DHT错误

时间:2014-10-07 22:20:50

标签: python import terminal sensor beagleboneblack

所以我已将DHT22湿度传感器正确连接到我的BeagleBone Black Rev C. 我在我的MacBook Pro上运行OS Mavericks,我按照Adafruit提供的关于如何使用我的DHT22的指示

我使用的网站非常清楚:https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/software-install-updated

此处还有我克隆的github文件:https://github.com/adafruit/Adafruit_Python_DHT

我加入了这些内容:

git clone https://github.com/adafruit/Adafruit_Python_DHT.git

cd Adafruit_Python_DHT

sudo apt-get upgrade

sudo apt-get install build-essential python-dev

sudo python setup.py install

cd examples

sudo ./AdafruitDHT.py 22 P8_11

直到最后一行我才成功。一旦我输入最后一行(sudo ./AdafruitDHT.py 22 P8_11),我收到以下错误消息:

Traceback (most recent call last):
  File "./AdafruitDHT.py", line 23, in <module>
    import Adafruit_DHT
ImportError: No module named Adafruit_DHT

我知道某处有一个Adafruit_DHT文件,因为当我进入Adafruit_Python_DHT目录时,我得到了这个:

root@beaglebone:~/Adafruit_Python_DHT# ls
Adafruit_DHT  examples  ez_setup.py  ez_setup.pyc  LICENSE  README.md  setup.py  source

我已尝试重新安装setup.py,但结果仍然相同。

我遵循了Adafruit提供的所有指示,但我似乎无法超越这个。对于发生了什么有什么想法?这似乎是一个简单的问题,但它证明是从我的DHT22获取读数的一个主要障碍。如果有更多信息需要帮助解决此问题,请告诉我。

3 个答案:

答案 0 :(得分:2)

轻松修复:

cd Adafruit_Python_DHT

sudo apt-get update

sudo apt-get install build-essential python-dev python-openssl

sudo python setup.py install

尝试再次运行sudo ./AdafruitDHT.py ## ## ...文件

您可能忘记正确运行设置。

答案 1 :(得分:0)

您的脚本似乎找不到“Adafruit_DHT”模块。 有两种方式。

  1. 在终端中运行文件为 “Python Adafruit_Python_DHT”

  2. 在脚本的第一行添加以下代码。 Should I put #! (shebang) in Python scripts, and what form should it take?

答案 2 :(得分:0)

好的,尝试使用“sudo”运行此脚本。

import sys
import Adafruit_DHT

def main():
    sensor_args = { '11': Adafruit_DHT.DHT11,
                        '22': Adafruit_DHT.DHT22,
                        '2302': Adafruit_DHT.AM2302 }
    if len(sys.argv) == 3 and sys.argv[1] in sensor_args:
        sensor = sensor_args[sys.argv[1]]
        pin = sys.argv[2]
    else:
        print 'usage: sudo ./Adafruit_DHT.py [11|22|2302] GPIOpin#'
        print 'example: sudo ./Adafruit_DHT.py 2302 4 - Read from an AM2302 connected to GPIO #4'
        sys.exit(1)

    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

if humidity is not None and temperature is not None:
    print 'Temp={0:0.1f}*C  Humidity={1:0.1f}%'.format(temperature, humidity)
else:
    print 'Failed to get reading. Try again!'

if __name__ == '__main__':
   main()