【问题标题】:Import azure.servicebus error in Python在 Python 中导入 azure.servicebus 错误
【发布时间】:2016-06-14 12:37:04
【问题描述】:

我正在使用模块 azure.servicebus。

from azure.servicebus import ServiceBusService , Message , Queue

当我在外部制作的脚本中使用它并运行它时,它可以正常工作并且没有错误。

当我在 init.py 文件中导入模块并运行烧瓶服务器时。我收到此错误:

Traceback (most recent call last):
File "__init__.py", line 35, in <module>
app = server.OpSoRoApplication()
File "/home/pi/OnoSW/server.py", line 101, in __init__
plugin = self.plugin_source.load_plugin(plugin_name)
File "/usr/local/lib/python2.7/dist-packages/pluginbase.py", line 272, in load_plugi           n
globals(), {}, ['__name__'])
File "/usr/local/lib/python2.7/dist-packages/pluginbase.py", line 404, in plugin_imp           ort
fromlist, level)
File "/home/pi/OnoSW/./apps/assistant/__init__.py", line 29, in <module>
import IFTTT
File "/usr/local/lib/python2.7/dist-packages/pluginbase.py", line 404, in plugin_imp           ort
fromlist, level)
File "/home/pi/OnoSW/IFTTT.py", line 1, in <module>
from azure.servicebus import ServiceBusService , Message , Queue
File "/usr/local/lib/python2.7/dist-packages/pluginbase.py", line 404, in plugin_imp           ort
fromlist, level)
File "/usr/local/lib/python2.7/dist-packages/azure/servicebus/__init__.py", line 39,            in <module>
from .servicebusservice import ServiceBusService
File "/usr/local/lib/python2.7/dist-packages/pluginbase.py", line 404, in plugin_imp           ort
fromlist, level)
File "/usr/local/lib/python2.7/dist-packages/azure/servicebus/servicebusservice.py",            line 46, in <module>
from ._common_serialization import (
File "/usr/local/lib/python2.7/dist-packages/pluginbase.py", line 404, in plugin_imp           ort
fromlist, level)
File "/usr/local/lib/python2.7/dist-packages/azure/servicebus/_common_serialization.           py", line 31, in <module>
from xml.sax.saxutils import escape as xml_escape
File "/usr/local/lib/python2.7/dist-packages/pluginbase.py", line 404, in plugin_imp           ort
fromlist, level)
File "/usr/lib/python2.7/xml/sax/__init__.py", line 22, in <module>
from xmlreader import InputSource
File "/usr/local/lib/python2.7/dist-packages/pluginbase.py", line 404, in plugin_imp           ort
fromlist, level)
ImportError: No module named xmlreader

谁能帮我弄清楚如何才能导入 azure.servicebus 模块?

谢谢

【问题讨论】:

    标签: python azure import python-import azureservicebus


    【解决方案1】:

    ServiceBusService 在 v7.0.0 中被弃用 https://pypi.org/project/azure-servicebus/7.0.0/

    from azure.servicebus import ServiceBusClient, ServiceBusMessage
    
    

    【讨论】:

      【解决方案2】:

      对于偶然发现这个问题的人现在遇到同样的问题:

      Azure SDK 更新经常并且已经引入了重大更改: 0.2 -> 0.5:

      # From azure.servicebus import ServiceBusService <- This will now raise an ImportError
      from azure.servicebus.control_client import ServiceBusService
      

      0.5 -> 7.0.0

      #from azure.servicebus import ServiceBusService <-- Now outdated
      from azure.servicebus.management import ServiceBusAdministrationClient 
      

      但这还不够:请务必在此迁移指南中查看更多 API 更改:https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/servicebus/azure-servicebus/migration_guide.md

      【讨论】:

      • 不起作用:“ImportError: No module named control_client” 可能他们又改了。
      【解决方案3】:

      我回答了一个类似的SO帖子,我想你可以参考一下,并尝试解决问题,请参阅Unable to use azure SDK in Python

      同时,根据我的经验,我建议您需要检查python模块和脚本的名称是否与xmlreader冲突,请参考SO线程ImportError: cannot import name Session, when using Azure SDK的答案。

      希望对您有所帮助。有任何更新,请随时告诉我。

      【讨论】:

        猜你喜欢
        • 2021-07-16
        • 1970-01-01
        • 1970-01-01
        • 2016-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多