Azure/azure-sdk-for-python

Import Error in azure-communication-email

monitsuka opened this issue · 1 comments

  • Package Name: azure-communication-email
  • Package Version: 1.0.0
  • Operating System: Ubuntu 22.04.4 LTS
  • Python Version: 3.10.12

Describe the bug
When I tested sample code generated by Azure Communication Service, ImportError has occured at from azure.communication.email import EmailClient.
Might it be that there is something like circular import in this library.

To Reproduce
Steps to reproduce the behavior:

$ sudo apt install python3-pip
$ python3 -m pip install --upgrade pip
$ sudo apt install python3-venv
$ python3 -m venv .venv
$ source .venv/bin/activate
$ python3 -m pip install azure-communicsation-email
$ python3
>>> from azure.communication.email import EmailClient

Expected behavior
Import has completed without error.

Screenshots
I'm sorry I can't paste screen shot. Masked Traceback is below.

>>> from azure.communication.email import EmailClient
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<MASKED>/.venv/lib/python3.10/site-packages/azure/communication/email/__init__.py", line 7, in <module>
    from ._email_client import EmailClient
  File "<MASKED>/.venv/lib/python3.10/site-packages/azure/communication/email/_email_client.py", line 9, in <module>
    from azure.core.credentials import AzureKeyCredential
  File "<MASKED>/.venv/lib/python3.10/site-packages/azure/core/__init__.py", line 31, in <module>
    from ._pipeline_client import PipelineClient
  File "<MASKED>/.venv/lib/python3.10/site-packages/azure/core/_pipeline_client.py", line 31, in <module>
    from .pipeline import Pipeline
  File "<MASKED>/.venv/lib/python3.10/site-packages/azure/core/pipeline/__init__.py", line 182, in <module>
    from ._base import Pipeline  # pylint: disable=wrong-import-position
  File "<MASKED>/.venv/lib/python3.10/site-packages/azure/core/pipeline/_base.py", line 34, in <module>
    from azure.core.pipeline.policies import HTTPPolicy, SansIOHTTPPolicy
  File "<MASKED>/.venv/lib/python3.10/site-packages/azure/core/pipeline/policies/__init__.py", line 28, in <module>
    from ._authentication import (
  File "<MASKED>/.venv/lib/python3.10/site-packages/azure/core/pipeline/policies/_authentication.py", line 9, in <module>
    from azure.core.pipeline.transport import HttpResponse as LegacyHttpResponse, HttpRequest as LegacyHttpRequest
  File "<MASKED>/.venv/lib/python3.10/site-packages/azure/core/pipeline/transport/__init__.py", line 27, in <module>
    from ._base import HttpTransport, HttpRequest, HttpResponse
  File "<MASKED>/.venv/lib/python3.10/site-packages/azure/core/pipeline/transport/_base.py", line 28, in <module>
    from email.message import Message
  File "<MASKED>/email.py", line 1, in <module>
    from azure.communication.email import EmailClient
ImportError: cannot import name 'EmailClient' from partially initialized module 'azure.communication.email' (most likely due to a cir\
cular import) (<MASKED>/.venv/lib/python3.10/site-packages/azure/communication/email/__init__.py)

Sorry, the problem here was not a bug, it was caused by my naming the sample code email.py.
I will try to be more careful...