ITKPythonPackage icon indicating copy to clipboard operation
ITKPythonPackage copied to clipboard

itkHelpers.py missing in itk python 5.2.0

Open yliu7366 opened this issue 5 years ago • 7 comments

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

yliu7366 avatar Apr 21 '21 15:04 yliu7366

Hi @yliu7366 , which itk Python packages do you have installed?

thewtex avatar May 04 '21 15:05 thewtex

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'

dboaretti avatar May 17 '21 14:05 dboaretti

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

dboaretti avatar May 17 '21 14:05 dboaretti

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

zndr27 avatar May 20 '21 19:05 zndr27


ModuleNotFoundError Traceback (most recent call last) in ----> 1 dir(itk.StripTsImageFilter.New())

~/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 86 import itk.ITKIOBioRadPython 87 import itk.ITKIOBMPPython ---> 88 from itk.itkStripTsImageFilterPython import * 89 90

~/miniconda3/envs/mrsi/lib/python3.8/site-packages/itk/itkStripTsImageFilterPython.py in 367 368 --> 369 import itkHelpers 370 @itkHelpers.accept_numpy_array_like_xarray 371 def strip_ts_image_filter(*args, **kwargs):

ModuleNotFoundError: No module named 'itkHelpers'

zndr27 avatar May 20 '21 19:05 zndr27

Changing the versions of ITK and all the modules to 5.1.0 fixed the issue for me.

zndr27 avatar May 20 '21 19:05 zndr27

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.

thewtex avatar May 23 '21 23:05 thewtex

Since issue is resolved by updating ITK and associated modules (see comment above). Closing.

jcfr avatar Oct 11 '22 01:10 jcfr