Skip to content

monai-weekly/monai pip install conflicting load_submodules #4993

Description

@wyli

Describe the bug
running pip install monai after running pip install monai-weekly causes module import random errors:

$ pip install monai-weekly
Collecting monai-weekly
  Using cached monai_weekly-0.10.dev2234-py3-none-any.whl (1.0 MB)
Requirement already satisfied: numpy>=1.17 in /usr/local/anaconda3/envs/py38/lib/python3.8/site-packages (from monai-weekly) (1.23.2)
Requirement already satisfied: torch>=1.7 in /usr/local/anaconda3/envs/py38/lib/python3.8/site-packages (from monai-weekly) (1.12.1)
Requirement already satisfied: typing-extensions in /usr/local/anaconda3/envs/py38/lib/python3.8/site-packages (from torch>=1.7->monai-weekly) (4.3.0)
Installing collected packages: monai-weekly
Successfully installed monai-weekly-0.10.dev2234

$ pip install monai
Collecting monai
  Using cached monai-0.9.1-202207251608-py3-none-any.whl (990 kB)
Requirement already satisfied: numpy>=1.17 in /usr/local/anaconda3/envs/py38/lib/python3.8/site-packages (from monai) (1.23.2)
Requirement already satisfied: torch>=1.7 in /usr/local/anaconda3/envs/py38/lib/python3.8/site-packages (from monai) (1.12.1)
Requirement already satisfied: typing-extensions in /usr/local/anaconda3/envs/py38/lib/python3.8/site-packages (from torch>=1.7->monai) (4.3.0)
Installing collected packages: monai
Successfully installed monai-0.9.1

$ python
Python 3.8.12 (default, Oct 12 2021, 06:23:56) 
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import monai
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/anaconda3/envs/py38/lib/python3.8/site-packages/monai/__init__.py", line 48, in <module>
    load_submodules(sys.modules[__name__], True, exclude_pattern=excludes)
  File "/usr/local/anaconda3/envs/py38/lib/python3.8/site-packages/monai/utils/module.py", line 191, in load_submodules
    mod = import_module(name)
  File "/usr/local/anaconda3/envs/py38/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/usr/local/anaconda3/envs/py38/lib/python3.8/site-packages/monai/apps/reconstruction/networks/blocks/varnetblock.py", line 16, in <module>
    from monai.apps.reconstruction.networks.nets.utils import sensitivity_map_expand, sensitivity_map_reduce
  File "/usr/local/anaconda3/envs/py38/lib/python3.8/site-packages/monai/apps/reconstruction/networks/nets/utils.py", line 21, in <module>
    from monai.apps.reconstruction.complex_utils import complex_conj_t, complex_mul_t
ImportError: cannot import name 'complex_conj_t' from 'monai.apps.reconstruction.complex_utils' (/usr/local/anaconda3/envs/py38/lib/python3.8/site-packages/monai/apps/reconstruction/complex_utils.py)
>>> 

Expected behavior
no import error

Additional context
the root cause is both pip install monai-weekly and monai may write to the same folder
(e.g., python3.8/site-packages/monai/), the load_submodules function tries to preload all subfolders:

load_submodules(sys.modules[__name__], False, exclude_pattern=excludes)

a workaround would be always run pip uninstall monai-weekly and pip uninstall monai multiple times before pip installing a new version (either monai-weekly or monai).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions