我试图用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)
答案 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而没有问题!