Я пытаюсь управлять светодиодом на моем Raspberry Pi с платформой Pubnub. Я только начал и попробовал этот урок:

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

Однако, когда я хочу выполнить файл Python, который импортирует библиотеку Pubnub со следующей строкой:

from pubnub import Pubnub

Я получаю это сообщение об ошибке:

ImportError: cannot import name Pubnub

Я сделал все именно так, как сказано в учебнике. Я даже скопировал классы .py из их репозитория Github.

Это мой класс:

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)
2
Jenkins 18 Дек 2015 в 14:25

3 ответа

Лучший ответ

Пытаться:

pip install pubnub

Я сделал это, и он отлично работает. Не надо ничего гитубить. pip доступен для Linux и Windows.

2
kotlet schabowy 18 Дек 2015 в 11:41

Если вы столкнулись с этим с начала ноября 2016 года; API pubnub изменился в версии 4.0.

from pubnub import Pubnub

Не работает. Это сейчас (насколько мне известно):

from pubnub.pubnub import PubNub
8
Carmen 9 Ноя 2016 в 15:31

Я столкнулся с той же проблемой на моем Raspberry Pi 3. Это оказалось очень глупой проблемой! У меня был файл с именем pubnub.py, поэтому, когда я запускал свой скрипт, когда он находился в папке «Рабочий стол», он не работал. Однако после того, как я поднял его в родительский каталог "pi", он импортировал pubnub без проблем!

0
castillejoale 3 Фев 2017 в 23:31