2016-07-28 585 views
3

我安裝了Python的kafka-python軟件包。我有一個卡夫卡生產者和消費者正在運行。我想要python代碼來讀取kafka主題並打印出消息。Python錯誤:無法導入名稱KafkaConsumer

我的Python代碼如下:

import sys 
from kafka import KafkaConsumer 

def kafkatest(): 
    print "Step 1 complete" 
    consumer=KafkaConsumer('test',bootstrap_servers=['localhost:9092']) 
    for message in consumer: 
     print "Next message" 
     print message 


if __name__=="__main__": 
    kafkatest() 

我得到以下錯誤:上什麼,我在這裏失蹤

C:\Python27>python.exe kafka.py Traceback (most recent call last): File "kafka.py", line 2, in <module> 
    from kafka import KafkaConsumer File "C:\Python27\kafka.py", line 2, in <module> 
    from kafka import KafkaConsumer ImportError: cannot import name KafkaConsumer 

有什麼建議?

回答

5

您已將您的文件命名爲kafka.py。現在,當你運行它,蟒蛇遇到下面的語句裏面:

from kafka import KafkaConsumer 

所以它必須找到一個名爲kafka模塊。它如何知道去哪裏看?那麼它看起來在sys.path,的目錄中,其中第一個被初始化爲輸入腳本的目錄。

因此,發現並試圖查看文件是模塊調用kafka,其中沒有定義KafkaConsumer,因此錯誤。

實際上,您正在導入自己。

道德停止具有相同名稱的系統庫或外部包,你希望用命名你的腳本。

+0

那幫了!不能相信這是一個天真的錯誤!感謝您的詳細解釋。 –

相關問題