ImportError: cannot import name 'ServiceBusClient' from 'azure.servicebus'

ImportError: cannot import name 'ServiceBusClient' from 'azure.servicebus'

我想要 运行 一个简单的 Azure 服务总线程序,我收到以下错误:

ImportError: cannot import name 'ServiceBusMessage' from 'azure.servicebus'

我在网上搜索了一下,应该是安装了Azure service bus,我也安装了。 我的 Python 版本:3.8.9 我的 pip 冻结:

azure-common==1.1.26
azure-core==1.13.0
azure-functions==1.6.0
azure-nspkg==3.0.2
azure-servicebus==7.1.1
azure-storage==0.36.0

我的代码:

from azure.servicebus import ServiceBusClient, ServiceBusMessage

import os
connstr = os.environ['******']
queue_name = os.environ['*****']

with ServiceBusClient.from_connection_string(connstr) as client:
    with client.get_queue_sender(queue_name) as sender:
        single_message = ServiceBusMessage("Single Message")
        sender.send_messages(single_message)

        messages = [ServiceBusMessage(
            "First Message"), ServiceBusMessage("Second message")]
        sender.send_messages(messages)

此问题是由于版本不兼容造成的。可以安装低版本azure.servicebus:

pip install azure-servicebus==7.0.0

在我的情况下必须降到更低的版本

pip install azure-servicebus==0.21.1

您可以在此处查看发布版本:https://pypi.org/project/azure-servicebus/#history