InsightSoftwareConsortium / InsightSoftwareConsortium/ITK

ITK Python v5.3rc03 fails to import ITKImageGrid after upgrade

Open
#3,175 12 comments 0 reactions 0 assignees View on GitHub
type:Bug
Dominant language
C++
Stars
1.7k
Forks
748
Avg merge
1d 1h
Merged PRs (30d)
64

Description

### Description

Seeing an issue where ITK v5.3rc03 fails to find the `ImageGrid` module after upgrading from a previous ITK version such as v5.2.post1. Succeeds on a clean install.

### Steps to Reproduce

1. `pip install itk==v5.3rc03`
2. Launch Python console
3. `import itk`
4. `itk.auto_progress(2)` (for module visibility)
4. `itk.force_load()`

### Expected behavior

All modules load without error

### Actual behavior

```py
>>> itk.force_load()
Loading ITKPyBase... done
Loading ITKCommon... done
Loading ITKStatistics... done
Loading ITKImageFilterBase... done
Loading ITKTransform... done
Loading ITKMesh... done
Loading ITKImageFunction... done
Loading ITKSpatialObjects... done
Loading ITKSmoothing... done
Loading ITKOptimizers... done
Loading ITKPath... done
Loading ITKImageCompose... done
Loading ITKImageStatistics... done
Traceback (most recent call last):
File "", line 1, in
File "/home/tom/anaconda3/envs/venv-itk/lib/python3.8/site-packages/itk/support/init_helpers.py", line 116, in force_load
getattr(itk, k)
File "/home/tom/anaconda3/envs/venv-itk/lib/python3.8/site-packages/itk/support/lazy.py", line 137, in __getattribute__
base.itk_load_swig_module(module, namespace)
File "/home/tom/anaconda3/envs/venv-itk/lib/python3.8/site-packages/itk/support/base.py", line 102, in itk_load_swig_module
itk_load_swig_module(dep, namespace)
File "/home/tom/anaconda3/envs/venv-itk/lib/python3.8/site-packages/itk/support/base.py", line 102, in itk_load_swig_module
itk_load_swig_module(dep, namespace)
File "/home/tom/anaconda3/envs/venv-itk/lib/python3.8/site-packages/itk/support/base.py", line 102, in itk_load_swig_module
itk_load_swig_module(dep, namespace)
File "/home/tom/anaconda3/envs/venv-itk/lib/python3.8/site-packages/itk/support/base.py", line 98, in itk_load_swig_module
l_data = itk_base_global_module_data[name]
KeyError: 'ITKImageGrid'
>>> itk.ImageGrid
Traceback (most recent call last):
File "", line 1, in
File "/home/tom/anaconda3/envs/venv-itk/lib/python3.8/site-packages/itk/support/lazy.py", line 130, in __getattribute__
value = types.ModuleType.__getattribute__(self, attr)
AttributeError: module 'itk' has no attribute 'ImageGrid'
```

### Reproducibility

After upgrading from v5.2.1.post1: 100%
After a clean install (uninstall and install all ITK packages with `pip`): 0%

### Versions

ITK 5.3 release candidate 3

### Environment

Observed on Windows and Linux in Python 3.8

### Additional Information

Observed after direct upgrade with `pip install itk==v5.3rc03` on both Windows and Linux. Problem was resolved for both platforms by removing all ITK packages with `pip uninstall itk ...` and reinstalling with `pip install itk`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.