ImportError: cannot import name Pubnub

ImportError: cannot import name Pubnub

我正在尝试使用 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 classes。

这是我的 class:

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)

尝试:

pip install pubnub

我做到了,效果很好。不需要 github 任何东西。 pip 可用于 Linux 和 Windows。

如果您 运行 从 2016 年 11 月上旬开始就喜欢这个; pubnub API 在 4.0 版中发生了变化。

from pubnub import Pubnub

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

from pubnub.pubnub import PubNub

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