[ITK] Query about building ITK on Windows 64-bit with Python Wrapping

Evan Kao tossin at gmail.com
Sat Apr 4 04:19:01 EDT 2015


Hi itk-users,

I'm still having a lot of trouble importing ITK into Python.  If I add the
following paths (specified in WrapITK.pth) to PYTHONPATH:

..\lib\Release
..\Wrapping\Generators\Python\Release

and ..\bin\Release to PATH, then attempt to import itk, I get the following
error:

Traceback (most recent call last):
>   File "<console>", line 2, in <module>
>   File "L:\git\ITK-build\Wrapping\Generators\Python\Release\itk.py", line
> 54, in <module>
>     itkBase.LoadModule(module, thisModule.__dict__)
>   File "L:\git\ITK-build\Wrapping\Generators\Python\Release\itkBase.py",
> line 53, in LoadModule
>     swig.__dict__.update(this_module.swig.__dict__)
> AttributeError: 'module' object has no attribute 'swig'
>

If in itkConfig.py I set LazyLoading = False, and attempt to import itk, I
get:

Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "L:\git\ITK-build\Wrapping\Generators\Python\Release\itk.py", line
> 54, in <module>
>     itkBase.LoadModule(module, thisModule.__dict__)
>   File "L:\git\ITK-build\Wrapping\Generators\Python\Release\itkBase.py",
> line 108, in LoadModule
>     LoadModule(dep, namespace)
>   File "L:\git\ITK-build\Wrapping\Generators\Python\Release\itkBase.py",
> line 108, in LoadModule
>     LoadModule(dep, namespace)
>   File "L:\git\ITK-build\Wrapping\Generators\Python\Release\itkBase.py",
> line 108, in LoadModule
>     LoadModule(dep, namespace)
>   File "L:\git\ITK-build\Wrapping\Generators\Python\Release\itkBase.py",
> line 108, in LoadModule
>     LoadModule(dep, namespace)
>   File "L:\git\ITK-build\Wrapping\Generators\Python\Release\itkBase.py",
> line 118, in LoadModule
>     module = loader.load(swigModuleName)
>   File "L:\git\ITK-build\Wrapping\Generators\Python\Release\itkBase.py",
> line 225, in load
>     fp, pathname, description = imp.find_module(name)
> ImportError: No module named ITKPyBasePython
>

So it seems like it can't find the python modules.  So I tried adding
..\lib to the PYTHONPATH and then imported itk and no errors appeared.
However if I try instantiating a class, I get:

Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> TypeError: 'itkTemplate' object is not callable
>

Anybody have any ideas on what's going on?  Or suggestions on how to
proceed?

Thanks,
Evan Kao

On Sun, Mar 22, 2015 at 12:19 AM, Evan Kao <tossin at gmail.com> wrote:

> Hello Bradley,
>
> Regarding registration, I'm just exploring options right now.  It seems
> like SimpleITK 0.9b is the way to go then.
>
> I still attempted to build ITK 4.8 with python-wrapping on and a few
> additional optional modules that I turned on mainly because they sounded
> interesting (ITKConfig.cmake attached for reference) with Visual Studio
> 2013/ver 12.  The build took about 12 hours (is that normal?) and seems to
> have mostly succeeded other than a few errors in the optional modules (I
> think they were in BridgeNumpy and VariationalRegistration).
>
> However I'm having some trouble using itk in python (same as the one
> described here
> <http://public.kitware.com/pipermail/community/2014-April/005753.html>).
> I've tried adding the WrapITK.pth file to site-packages as well as directly
> adding both of the paths specified in WrapITK.pth directly to the
> PYTHONPATH, but keep getting "AttributeError: 'module' object has no
> attribute 'swig' " every time I attempt to use a filter.  Do you know how
> to fix the issue?
>
> Thanks,
> Evan Kao
>
> On Sat, Mar 21, 2015 at 8:29 AM, Bradley Lowekamp <blowekamp at mail.nih.gov>
> wrote:
>
>> Hello,
>>
>> WrapITK has recently been upgraded to use CastXML ( clang based ),
>> instead of GCCXML. This appears to now be working MS VS12 ( aka Visual
>> Studio 2013?) windows compiler[1]. This is relatively new and it would be
>> great if you can checkout ITK master and try to build it and report how it
>> works for you. The wiki hasn't been updated with this latest bit of
>> information.
>>
>> However please keep in mind that WrapITK does not contain 100% of ITK and
>> not 100% of Registration. For example it does contain the ITKv3
>> ImageRegistationMethod however it doest not contain the new ITKv4
>> ImageRegistration method or frame work. With effort this thing can be
>> wrapped.
>>
>> If you have to resort to SimpleITK, you will find the binaries for
>> window64 readily available from the nightly dashboard[2]. The best place to
>> check if SimpleITK has the registration methods you need would be the
>> doxygen[3]. It contains the ITKv4 Registration framework, as well as some
>> legacy image registration filter. The frame work is capable of affines,
>> bspline, and displacement transforms and many nice feature of the ITKv4
>> framework.
>>
>> Do you have a specific registration method you are looking to do? or just
>> explore some options?
>>
>> Brad
>>
>> [1] https://open.cdash.org/buildSummary.php?buildid=3738598
>> [2] http://www.itk.org/Wiki/SimpleITK/GettingStarted#Nightly_binaries
>> [3] http://www.itk.org/SimpleITKDoxygen/html/classes.html
>>
>> On Mar 21, 2015, at 3:17 AM, Evan Kao <tossin at gmail.com> wrote:
>>
>> Hello itk-users,
>>
>> I'd like to use ITK features in python that don't seem to be implemented
>> in the latest stable release of SimpleITK, like image registration and
>> quadmesh filters.  However, looking around the internet, several sources
>> (like the Wiki <http://www.itk.org/Wiki/ITK/WrapITK_Status>, this thread
>> <http://public.kitware.com/pipermail/community/2014-November/007888.html>
>> from about 5 months ago, or this site
>> <http://www5.cs.fau.de/en/conrad/tutorials/itk-and-vtk-wrapping/wrap-itk/>)
>> seem to suggest building WrapITK isn't possible on a 64-bit machine due to
>> conflict between GCCXML and any Visual Studio beyond 2008 (and VS2008
>> 64-bit apparently only comes with the professional edition, which I'm not
>> even sure is available or worth obtaining).  The Wiki also suggests mingw64
>> is also not viable.  Is this still the case?   Is there anyway to use ITK
>> with python on a 64-bit machine?
>>
>> If I have to resort to the latest nightly binary of SimpleITK for image
>> registration, does it include all the registration methods available in ITK?
>>
>> Thanks,
>> Evan Kao
>> _______________________________________________
>> Community mailing list
>> Community at itk.org
>> http://public.kitware.com/mailman/listinfo/community
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/community/attachments/20150404/b758ed7c/attachment-0001.html>


More information about the Community mailing list