首页 > 解决方案 > 使用 azure-eventhubs python 示例时出错

问题描述

我正在尝试使用示例代码从 Azure 事件中心接收数据。

这是代码

import os
import sys
import logging
import time
from azure.eventhub import EventHubClient, Receiver, Offset

logger = logging.getLogger("azure")

ADDRESS = "amqps://mine.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=sadfsafdljksad=<eventhub>"

但是执行时出现以下错误..

Traceback (most recent call last):
  File "./recv.py", line 5, in <module>
    from azure.eventhub import EventHubClient, Receiver, Offset
ImportError: cannot import name 'EventHubClient'

任何帮助将不胜感激。

标签: pythonazure

解决方案


我认为您实际上安装了azure-eventhub 包,版本 5.0.0。但EventHubClient在 5.0.0 版本中不存在,它存在于azure-eventhub 包中,版本 1.3.3或以下。

默认情况下,当您使用此命令安装适用于 python 的 azure eventthub 包时pip install azure-eventhub,它将自动安装最新版本 5.0.0。所以这句话from azure.eventhub import EventHubClient, Receiver, Offset会抛出错误ImportError: cannot import name 'EventHubClient'

您可以通过 open cmd -> input command 查看包的版本pip show azure-eventhub。截图如下:

在此处输入图像描述

有2个解决方案:

解决方案 1:继续使用 5.0.0 版本,然后您应该重新编写代码并按照此文档中的示例进行操作。

解决方案2:如果要使用当前包含的代码,from azure.eventhub import EventHubClient, Receiver, Offset请先卸载5.0.0 versionazure-eventhub的,然后1.3.3 version使用此命令重新安装pip install azure-eventhub==1.3.3


推荐阅读