itkHelpers.py missing in itk python 5.2.0
Unable to find itkHelpers.py in the installation and got python error: ModuleNotFoundError: No module named 'itkHelpers'
itk python 5.2.0 installed via pip install itk
Hi @yliu7366 , which itk Python packages do you have installed?
I would like to add that I have the same kind of issue:
import itk
import numpy as np
# Do NumPy stuff...
np_copy = np.zeros((20,20,20))
np_copy[10:15, 10:15, 10:15] = 1
# Convert back to ITK, data is copied
itk_np_copy = itk.image_from_array(np_copy)
itk.BoneMorphometryFeaturesImageFilter(itk_np_copy)
The error is:
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-2-70dfb7eb633f> in <module>
----> 1 itk.BoneMorphometryFeaturesImageFilter(itk_np_copy)
/scratch/frameworks/bdaniele/new_test_framework/venv/lib64/python3.8/site-packages/itk/support/lazy.py in __getattribute__(self, attr)
74 module = self.__belong_lazy_attributes[attr]
75 namespace = {}
---> 76 base.itk_load_swig_module(module, namespace)
77 self.loaded_lazy_modules.add(module)
78 for k, v in namespace.items():
/scratch/frameworks/bdaniele/new_test_framework/venv/lib64/python3.8/site-packages/itk/support/base.py in itk_load_swig_module(name, namespace)
108 # if we haven't already.
109 loader = LibraryLoader()
--> 110 l_module = loader.load(swig_module_name)
111
112 # OK, now the modules on which this one depends are loaded and
/scratch/frameworks/bdaniele/new_test_framework/venv/lib64/python3.8/site-packages/itk/support/base.py in load(self, name)
257 # since version 3.4: Use importlib.util.find_spec() instead.
258 l_spec = importlib.util.find_spec(name)
--> 259 l_spec.loader.exec_module(l_module) # pytype: disable=attribute-error
260 return l_module
261 finally:
/usr/lib64/python3.8/importlib/_bootstrap_external.py in exec_module(self, module)
/usr/lib64/python3.8/importlib/_bootstrap.py in _call_with_frames_removed(f, *args, **kwds)
/scratch/frameworks/bdaniele/new_test_framework/venv/lib64/python3.8/site-packages/itk/support/../BoneMorphometryPython.py in <module>
73 import itk.ITKImageGridPython
74 import itk.ITKCommonPython
---> 75 from itk.itkBoneMorphometryFeaturesFilterPython import *
76 from itk.itkBoneMorphometryFeaturesImageFilterPython import *
77 from itk.itkReplaceFeatureMapNanInfImageFilterPython import *
/scratch/frameworks/bdaniele/new_test_framework/venv/lib64/python3.8/site-packages/itk/itkBoneMorphometryFeaturesFilterPython.py in <module>
424
425
--> 426 import itkHelpers
427 @itkHelpers.accept_numpy_array_like_xarray
428 def bone_morphometry_features_filter(*args, **kwargs):
ModuleNotFoundError: No module named 'itkHelpers'
The itk packages are:
itk-5.2.0.post2 itk-core-5.2.0.post2 itk-filtering-5.2.0.post2 itk-io-5.2.0.post2 itk-numerics-5.2.0.post2 itk-registration-5.2.0.post2 itk-segmentation-5.2.0.post2
I have the same issue. I'm using the following packages:
itk 5.2.0.post2 itk-core 5.2.0.post2 itk-filtering 5.2.0.post2 itk-io 5.2.0.post2 itk-numerics 5.2.0.post2 itk-registration 5.2.0.post2 itk-segmentation 5.2.0.post2 itk-skullstripping 0.0.1
ModuleNotFoundError Traceback (most recent call last)
~/miniconda3/envs/mrsi/lib/python3.8/site-packages/itk/support/lazy.py in getattribute(self, attr) 74 module = self.__belong_lazy_attributes[attr] 75 namespace = {} ---> 76 base.itk_load_swig_module(module, namespace) 77 self.loaded_lazy_modules.add(module) 78 for k, v in namespace.items():
~/miniconda3/envs/mrsi/lib/python3.8/site-packages/itk/support/base.py in itk_load_swig_module(name, namespace) 108 # if we haven't already. 109 loader = LibraryLoader() --> 110 l_module = loader.load(swig_module_name) 111 112 # OK, now the modules on which this one depends are loaded and
~/miniconda3/envs/mrsi/lib/python3.8/site-packages/itk/support/base.py in load(self, name) 257 # since version 3.4: Use importlib.util.find_spec() instead. 258 l_spec = importlib.util.find_spec(name) --> 259 l_spec.loader.exec_module(l_module) # pytype: disable=attribute-error 260 return l_module 261 finally:
~/miniconda3/envs/mrsi/lib/python3.8/importlib/_bootstrap_external.py in exec_module(self, module)
~/miniconda3/envs/mrsi/lib/python3.8/importlib/_bootstrap.py in _call_with_frames_removed(f, *args, **kwds)
~/miniconda3/envs/mrsi/lib/python3.8/site-packages/itk/support/../SkullStripPython.py in
~/miniconda3/envs/mrsi/lib/python3.8/site-packages/itk/itkStripTsImageFilterPython.py in
ModuleNotFoundError: No module named 'itkHelpers'
Changing the versions of ITK and all the modules to 5.1.0 fixed the issue for me.
We need to update related module packages for itk-5.2.0.post2.
@dboaretti it looks like you are using itk-bonemorphometry. This package was updated for itk-5.2.0.post2 in version 1.3.0. Please try pip install --upgrade itk-bonemorphometry.
@zndr27 itk-skullstripping has also been upgraded in 0.1.0. Please try pip install --upgrade itk-skullstripping.
Since issue is resolved by updating ITK and associated modules (see comment above). Closing.