【问题标题】:Python error: Cannot import name KafkaConsumerPython 错误:无法导入名称 KafkaConsumer
【发布时间】:2016-12-03 12:40:10
【问题描述】:

我为 Python 安装了 kafka-python 包。我有一个 kafka 生产者和消费者正在运行。我希望 python 代码读取 kafka 主题并打印出消息。

我的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

对我在这里缺少什么有什么建议吗?

【问题讨论】:

    标签: python apache-kafka


    【解决方案1】:

    您已将文件命名为 kafka.py。现在,当你运行它时,python 会在其中遇到以下语句:

    from kafka import KafkaConsumer
    

    所以它必须找到一个名为kafka 的模块。它怎么知道去哪里看?它在sys.path 上的目录中查找,第一个被初始化为输入脚本的目录

    因此,它找到并尝试查看的文件是名为kafka您的 模块,它没有定义KafkaConsumer,因此出现错误。

    实际上,您是在导入自己。

    道德停止使用与您希望使用的系统库或外部包相同的名称来命名您的脚本

    【讨论】:

    • 正确。谢谢!
    • @AnirudhRamanathan 如果它解决了您的问题,您应该接受答案
    • 不是我的问题@acat
    • @AnirudhRamanathan 明白了,我现在明白了。一定是看错了
    猜你喜欢
    • 2014-01-29
    • 1970-01-01
    • 2019-10-04
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    相关资源
    最近更新 更多