【问题标题】:Python Error when importing azure-eventhub on Mac Monterey在 Mac Monterey 上导入 azure-eventhub 时出现 Python 错误
【发布时间】:2022-10-19 12:24:16
【问题描述】:

我正在尝试导入以下内容:

from azure.eventhub import EventData
from azure.eventhub.aio import EventHubProducerClient
from azure.eventhub.exceptions import EventHubError

我得到错误:

from azure.eventhub import EventData
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/azure/eventhub/__init__.py", line 5, in <module>
    from ._common import EventData, EventDataBatch
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/azure/eventhub/_common.py", line 24, in <module>
    from ._utils import (
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/azure/eventhub/_utils.py", line 33, in <module>
    from uamqp import types as uamqp_types
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/uamqp/__init__.py", line 12, in <module>
    from uamqp import c_uamqp  # pylint: disable=import-self
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/uamqp/c_uamqp.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '_SASToken_CreateString'
>>> from azure.eventhub.aio import EventHubProducerClient
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/azure/eventhub/__init__.py", line 5, in <module>
    from ._common import EventData, EventDataBatch
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/azure/eventhub/_common.py", line 24, in <module>
    from ._utils import (
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/azure/eventhub/_utils.py", line 33, in <module>
    from uamqp import types as uamqp_types
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/uamqp/__init__.py", line 12, in <module>
    from uamqp import c_uamqp  # pylint: disable=import-self
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/uamqp/c_uamqp.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '_SASToken_CreateString'
>>> from azure.eventhub.exceptions import EventHubError
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/azure/eventhub/__init__.py", line 5, in <module>
    from ._common import EventData, EventDataBatch
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/azure/eventhub/_common.py", line 24, in <module>
    from ._utils import (
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/azure/eventhub/_utils.py", line 33, in <module>
    from uamqp import types as uamqp_types
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/uamqp/__init__.py", line 12, in <module>
    from uamqp import c_uamqp  # pylint: disable=import-self
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/uamqp/c_uamqp.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '_SASToken_CreateString'

PS-我已经为 azure-eventhub 安装了 pip。我在 Mac M1 机器上运行它,使用 Python:3.10.6 和 pip 22.2.2。

需要修复/导入什么来解决错误?

【问题讨论】:

    标签: python azure azure-eventhub


    【解决方案1】:

    尝试从源代码而不是 wheel/binary 安装 uamqp。

    首先删除 eventthub 和 uamqp 库:

    pip remove azure-eventhub
    pip remove uamqp
    

    首先从源安装 uamqp:

    pip install --no-binary uamqp uamqp
    pip install azure-eventhub
    

    这在我的 M1 上对我有用。看看这是否也适合你。

    【讨论】:

      【解决方案2】:

      在 Python 3.10 上,您可以更新到最新的 uamqp 包以获得 Apple M1 支持:

      pip install -U uamqp
      

      1.6.1 及更高版本将在 Python 3.10 及更高版本上支持 M1

      【讨论】:

      • 我已经提交了一个补丁来将 M1 车轮添加到包中,github.com/Azure/azure-uamqp-python/pull/335
      • 好消息安东尼!感谢您提交修复:)
      • @anthonyshaw,在正式版本包含您的修复之前,是否有可能在本地应用此补丁?
      • 最新的更新(10 月 12 日)现在有一个通用轮子,所以它应该可以在 Python 3.10 上运行
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 2023-02-10
      • 2014-07-16
      • 2011-08-08
      • 2016-11-25
      • 1970-01-01
      相关资源
      最近更新 更多