2016-07-28 584 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

那帮了!不能相信这是一个天真的错误!感谢您的详细解释。 –

相关问题