Omni.kit.pipapi import problems, name collision?

Hello,

I would like to import both azure-iot-hub and azure-evenhub modules in my extension. I am currently using omni.kit.pipapi (since I had to luck with dependency file). I can see both extensions being installed in the standard output, however it seems that I can only successfully import azure.eventhub module. azure.iot.hub import fails with ModuleNotFoundError.

azure.eventhub works as expected after the import (if I remove azure-iot-hub).

Here is the import code:

import omni.kit.pipapi
import asyncio
import json
from pxr import Usd

try:
    from azure.eventhub.aio import EventHubConsumerClient
    from azure.iot.hub import DigitalTwinClient
except ImportError:
    omni.kit.pipapi.install("azure-eventhub", module="azure.eventhub", version="5.11.1", ignore_import_check=True)
    omni.kit.pipapi.install("azure-iot-hub", module='azure.iot.hub', version="2.6.1", ignore_import_check=True)
    from azure.eventhub.aio import EventHubConsumerClient

    from azure.iot.hub import DigitalTwinClient

and the log output

Collecting azure-eventhub
  Using cached azure_eventhub-5.11.1-py3-none-any.whl (305 kB)
Collecting typing-extensions>=4.0.1
  Using cached typing_extensions-4.5.0-py3-none-any.whl (27 kB)
Collecting azure-core<2.0.0,>=1.14.0
  Using cached azure_core-1.26.3-py3-none-any.whl (174 kB)
Collecting requests>=2.18.4
  Using cached requests-2.28.2-py3-none-any.whl (62 kB)
Collecting six>=1.11.0
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting idna<4,>=2.5
  Using cached idna-3.4-py3-none-any.whl (61 kB)
Collecting urllib3<1.27,>=1.21.1
  Using cached urllib3-1.26.14-py2.py3-none-any.whl (140 kB)
Collecting certifi>=2017.4.17
  Using cached certifi-2022.12.7-py3-none-any.whl (155 kB)
Collecting charset-normalizer<4,>=2
  Using cached charset_normalizer-3.1.0-cp37-cp37m-win_amd64.whl (94 kB)
Installing collected packages: typing-extensions, idna, urllib3, certifi, charset-normalizer, requests, six, azure-core, azure-eventhub
Successfully installed azure-core-1.26.3 azure-eventhub-5.11.1 certifi-2022.12.7 charset-normalizer-3.1.0 idna-3.4 requests-2.28.2 six-1.16.0 typing-extensions-4.5.0 urllib3-1.26.14
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\bin already exists. Specify --upgrade to force replacement.
WARNING: You are using pip version 20.1.1; however, version 23.0.1 is available.
You should consider upgrading via the 'c:\users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\kit\python\python.exe -m pip install --upgrade pip' command.
Collecting azure-iot-hub
  Using cached azure_iot_hub-2.6.1-py2.py3-none-any.whl (102 kB)
Collecting msrest<1.0.0,>=0.6.21
  Using cached msrest-0.7.1-py3-none-any.whl (85 kB)
Collecting uamqp<2.0.0,>=1.2.14
  Using cached uamqp-1.6.4-cp37-cp37m-win_amd64.whl (833 kB)
Collecting azure-core<2.0.0,>=1.10.0
  Using cached azure_core-1.26.3-py3-none-any.whl (174 kB)
Collecting certifi>=2017.4.17
  Using cached certifi-2022.12.7-py3-none-any.whl (155 kB)
Collecting isodate>=0.6.0
  Using cached isodate-0.6.1-py2.py3-none-any.whl (41 kB)
Collecting requests~=2.16
  Using cached requests-2.28.2-py3-none-any.whl (62 kB)
Collecting requests-oauthlib>=0.5.0
  Using cached requests_oauthlib-1.3.1-py2.py3-none-any.whl (23 kB)
Collecting six>=1.11.0
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting typing-extensions>=4.0.1
  Using cached typing_extensions-4.5.0-py3-none-any.whl (27 kB)
Collecting charset-normalizer<4,>=2
  Using cached charset_normalizer-3.1.0-cp37-cp37m-win_amd64.whl (94 kB)
Collecting idna<4,>=2.5
  Using cached idna-3.4-py3-none-any.whl (61 kB)
Collecting urllib3<1.27,>=1.21.1
  Using cached urllib3-1.26.14-py2.py3-none-any.whl (140 kB)
Collecting oauthlib>=3.0.0
  Using cached oauthlib-3.2.2-py3-none-any.whl (151 kB)
Installing collected packages: certifi, six, isodate, charset-normalizer, idna, urllib3, requests, oauthlib, requests-oauthlib, typing-extensions, azure-core, msrest, uamqp, azure-iot-hub
Successfully installed azure-core-1.26.3 azure-iot-hub-2.6.1 certifi-2022.12.7 charset-normalizer-3.1.0 idna-3.4 isodate-0.6.1 
msrest-0.7.1 oauthlib-3.2.2 requests-2.28.2 requests-oauthlib-1.3.1 six-1.16.0 typing-extensions-4.5.0 uamqp-1.6.4 urllib3-1.26.14
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\azure already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\azure_core-1.26.3.dist-info already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\certifi already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\certifi-2022.12.7.dist-info already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\charset_normalizer already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\charset_normalizer-3.1.0.dist-info already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\idna already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\idna-3.4.dist-info already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\requests already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\requests-2.28.2.dist-info already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\six-1.16.0.dist-info already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\six.py already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\typing_extensions-4.5.0.dist-info already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\typing_extensions.py already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\urllib3 already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\urllib3-1.26.14.dist-info already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\__pycache__ already exists. Specify --upgrade to force replacement.
WARNING: Target directory C:\Users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\data\Kit\eit.lab\1.0\pip3-envs\default\bin already exists. Specify --upgrade to force replacement.
WARNING: You are using pip version 20.1.1; however, version 23.0.1 is available.
You should consider upgrading via the 'c:\users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\kit\python\python.exe -m pip install --upgrade pip' command.
2023-03-09 23:04:26 [17,099ms] [Error] [omni.ext._impl.custom_importer] Failed to import python module eit.lab.setup. Error: No module named 'azure.iot'. Traceback:
Traceback (most recent call last):
  File "c:\users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\exts\eit.lab.setup\eit\lab\setup\comlink.py", line 9, in <module>
    from azure.eventhub.aio import EventHubConsumerClient
ModuleNotFoundError: No module named 'azure'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:/users/user/projects/eit/eit-labkit/eit-lab/_build/windows-x86_64/release/kit/kernel/py\omni\ext\_impl\custom_importer.py", line 76, in import_module
    return importlib.import_module(name)
  File "c:\users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\kit\python\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "c:\users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\exts\eit.lab.setup\eit\lab\setup\__init__.py", line 1, in <module>
    from .extension import *
  File "c:\users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\exts\eit.lab.setup\eit\lab\setup\extension.py", line 3, in <module>
    from .loader import Loader
  File "c:\users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\exts\eit.lab.setup\eit\lab\setup\loader.py", line 11, in <module>
    from .comlink import ComLink
  File "c:\users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\exts\eit.lab.setup\eit\lab\setup\comlink.py", line 16, in <module>
    from azure.iot.hub import DigitalTwinClient
ModuleNotFoundError: No module named 'azure.iot'

2023-03-09 23:04:26 [17,102ms] [Error] [carb.scripting-python.plugin] Exception: Extension python module: 'eit.lab.setup' in 'c:\users\user\projects\eit\eit-labkit\eit-lab\_build\windows-x86_64\release\exts\eit.lab.setup' failed to load.

At:
  c:/users/user/projects/eit/eit-labkit/eit-lab/_build/windows-x86_64/release/kit/kernel/py\omni\ext\_impl\_internal.py(189): startup
  c:/users/user/projects/eit/eit-labkit/eit-lab/_build/windows-x86_64/release/kit/kernel/py\omni\ext\_impl\_internal.py(285): startup_extension
  PythonExtension.cpp::startup()(2): <module>

2023-03-09 23:04:26 [17,103ms] [Error] [omni.ext.plugin] [ext: eit.lab.setup-1.0.0] Failed to startup python extension.     

Anyone know what might be the issue here?

Thanks @egr! I’ve logged OM-86666 in order to have the dev team look into it.