The following comments are intended for core gdcm developpers. * Python related section. Depending on the automake/autoconf/autogen.sh flags you used gdcm could be wrapped in two ways: - the first python wrappers of gdcm use Swig (http://www.swig.org). They are the ones generated when using autogen.sh --enable-python. The entry point is here the file gdcmPython/gdcm.i which uses the Swig synthax. As the last lines of this file (the ones starting with the %include directive) only some classes are wrapped for python. In theory only the library interface (basically the classes gdcmHeader and gdcmFile) should be wrapped, but the time being some additional classes are added (just to make sure those classes are Swig compatible: swig is here used as some lint checker!?). Since gdcm is written in C++, Swig will produce two different outups: -- some C based low level wrapper (see gdcmPython/gdcm_wrap.c) -- some Python based object oriented so called "shadow classes" (see file gdcmPython/gdcm.py) We also added the file gdcmPython/__init__.py which is the one that actually gets loaded when ones uses the gdcmPython Python package. The file __init__.py loads the swig generated shadow classes (gdcm.py) but will only re-export the interface of gdcm which correponds to the lines : gdcmHeader = gdcm.gdcmHeader gdcmDictSet = gdcm.gdcmDictSet gdcmFile = gdcm.gdcmFile Hence this whole Swig wrapping process is quite odd since we shall wrap more classes (%include in swig.i) than eventually exported to the final user by gdcmPython/__init__.py. - the second python wrappers use the vtk (http://public.kitware.com/VTK/) native wrappers i.e. the binary vtkWrapPython. But it should be noticed that the purpous is here a bit different than the one of the Swig generated Python wrappers. When using vtkWrapPython the goal is to wrap a single vtk class namely vtkGdcmReader as defined in files in vtk/vtkGdcmReader.h vtk/vtkGdcmReader.cxx (and of course those files are hand made vtk oriented wrappers of gdcm). Those wrappers are the one generated when using autogen.sh --enable-python --enable-vtk - In order to understand the difference between both wrappers you should compare both demo scripts gdcmPython/demo/vtkGdcmDemo.py and gdcmPython/demo/vtkGdcmReader.py. The first one only uses the Swig wraped classes ("from gdcmPython import gdcmHeader') as opposed to vtkGdcmReader.py which also uses vtkWrapPython wraped classes ("from gdcmPython.vtkgdcmPython import *").