2015-12-18 180 views
2

我試圖用Pubnub平臺控制我的Raspberry Pi上的LED。 我剛剛開始,我想這個教程:ImportError:無法導入名稱Pubnub

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

pubnub.py文件與您正在執行的文件在同一目錄中,還是在pythonpath上? – AK47

+0

嘗試運行:help('modules')並查看列出了哪些模塊。尋找你的Pubnub – AK47

+0

我這樣做是爲了安裝Python和pubnub: 安裝Python: PI @樹莓派〜$ sudo易於得到安裝python-dev的 安裝PIP: PI @樹莓派〜$ sudo易於得到安裝python -pip install PubNub: pi @ raspberrypi〜$ sudo pip install pubnub – Jenkins

回答

2

嘗試:

pip install pubnub 

我做到了,它工作正常。無需Github任何東西。 pip可用於Linux和Windows。

+0

我在設置項目時已經做到了這一點。見上面的評論。我是否需要再次執行它? – Jenkins

+0

當我再次執行命令時,它表示需求已滿足。 – Jenkins

+0

你可以做「導入pubnub」嗎?請發佈dir(pubnub)。 –

8

如果您從2016年11月初開始運行此操作;版本4.0中的pubnub API已更改。

from pubnub import Pubnub 

不起作用。它現在(我所知):

from pubnub.pubnub import PubNub 
+0

這解決了我的問題!謝謝! – Brodan

+0

謝謝你做到了。然而,API的變化太大了,以致於舊的Raspberry Pi教程完全無法工作。是否有人有PubNub python新API的工作示例? –

0

我經歷了我的樹莓派3.同樣的問題,它結束了是一件很無聊的問題!我有一個名爲pubnub.py的文件,這就是爲什麼當我在我的腳本位於文件夾「桌面」時運行它的原因,它不起作用。然而,在我把它帶到它的父目錄「pi」之後,它導入了pubnub而沒有問題!

相關問題