ImportError:无法导入名称Pubnub

时间:2015-12-18 11:25:46

标签: python raspberry-pi raspberry-pi2 pubnub iot

我试图用Pubnub平台控制我的Raspberry Pi上的LED。 我刚刚开始,我尝试了这个教程:

https://www.pubnub.com/blog/2015-05-27-internet-of-things-101-getting-started-w-raspberry-pi/

但是,当我想执行一个用以下行导入Pubnub库的Python文件时:

from pubnub import Pubnub

我收到此错误消息:

ImportError: cannot import name Pubnub

我按照教程中的说法完成了所有操作。我甚至从他们的Github存储库中复制了.py类。

这是我的班级:

import RPi.GPIO as GPIO
import time
import sys
from pubnub import Pubnub

GPIO.setmode (GPIO.BCM)

LED_PIN = 17

GPIO.setup(LED_PIN,GPIO.OUT)

pubnub = Pubnub(publish_key='xxxx', subscribe_key='xxxx')

channel = 'disco'

def _callback(m, channel):
        print(m)
        if m['led'] == 1:
                for i in range(6):
                    GPIO.output(LED_PIN,True)
                    time.sleep(0.5)
                    GPIO.output(LED_PIN,False)
                    time.sleep(0.5)
                    print('blink')

def _error(m):
        print(m)

pubnub.subscribe(channels=channel, callback=_callback, error=_error)

3 个答案:

答案 0 :(得分:8)

如果您自2016年11月初以来遇到此问题; pubnub API在4.0版中已更改。

from pubnub import Pubnub

不起作用。现在(据我所知):

from pubnub.pubnub import PubNub

答案 1 :(得分:2)

尝试:

pip install pubnub

我做到了,它运作正常。不需要github任何东西。 pip适用于Linux和Windows。

答案 2 :(得分:0)

我在Raspberry Pi 3上遇到了同样的问题。它最终成了一个非常愚蠢的问题!我有一个名为pubnub.py的文件,这就是为什么当我运行我的脚本时,它位于文件夹“桌面”,它不起作用。但是,在我把它带到它的父目录“pi”后,它导入了pubnub而没有问题!