I am trying to import mlab from the enthought mayavi module. I am using the enthought canopy distribution.
I get the following series of errors. I can't seem to find any similar errors on searching.
Does anyone have any ideas for a next step?
ImportError Traceback (most recent call last)
<ipython-input-11-3f0e4b94a8ea> in <module>()
----> 1 from mayavi import mlab
C:\...\Enthought\Canopy32\User\lib\site-packages\mayavi\mlab.py in <module>()
25
26 # Mayavi imports
---> 27 from mayavi.tools.camera import view, roll, yaw, pitch, move
28 from mayavi.tools.figure import figure, clf, gcf, savefig, \
29 draw, sync_camera, close, screenshot
C:\...\Enthought\Canopy32\User\lib\site-packages\mayavi\tools\camera.py in <module>()
23 # We can't use gcf, as it creates a circular import in camera management
24 # routines.
---> 25 from engine_manager import get_engine
26
27
C:\...\Enthought\Canopy32\User\lib\site-packages\mayavi\tools\engine_manager.py in <module>()
12 from mayavi.preferences.api import preference_manager
13 from mayavi.core.registry import registry
---> 14 from mayavi.core.engine import Engine
15 from mayavi.core.off_screen_engine import OffScreenEngine
16 from mayavi.core.null_engine import NullEngine
C:\...\Enthought\Canopy32\User\lib\site-packages\mayavi\core\engine.py in <module>()
25
26 # Local imports.
---> 27 from mayavi.core.base import Base
28 from mayavi.core.scene import Scene
29 from mayavi.core.common import error, process_ui_events
C:\...\Enthought\Canopy32\User\lib\site-packages\mayavi\core\base.py in <module>()
17 HasTraits, WeakRef, on_trait_change)
18 from traitsui.api import TreeNodeObject
---> 19 from tvtk.pyface.tvtk_scene import TVTKScene
20 from apptools.persistence import state_pickler
21 from pyface.resource.api import resource_path
C:\...\Enthought\Canopy32\User\lib\site-packages\tvtk\pyface\tvtk_scene.py in <module>()
22 Property, Instance, Event, Range, Bool, Trait, Str
23
---> 24 from tvtk.pyface import light_manager
25
26 VTK_VER = tvtk.Version().vtk_version
C:\...\Enthought\Canopy32\User\lib\site-packages\tvtk\pyface\light_manager.py in <module>()
128 # `CameraLight` class.
129 ######################################################################
--> 130 class CameraLight(HasTraits):
131
132 """This class manages a tvtk.Light object and a LightGlyph object."""
C:\...\Enthought\Canopy32\User\lib\site-packages\tvtk\pyface\light_manager.py in CameraLight()
144 activate = Trait(False, false,
145 desc="specifies if the light is enabled or not")
--> 146 source = Instance(tvtk.Light, ())
147
148 # FIXME: Traits Delegation does not work correctly and changes to
C:\...\Enthought\Canopy32\User\lib\site-packages\tvtk\tvtk_classes.zip\tvtk_classes\tvtk_helper.py in <lambda>(self)
204 LabelHierarchyIterator = property(lambda self: get_class('LabelHierarchyIterator'))
205 LabelRenderStrategy = property(lambda self: get_class('LabelRenderStrategy'))
--> 206 Light = property(lambda self: get_class('Light'))
207 LightKit = property(lambda self: get_class('LightKit'))
208 LineIntegralConvolution2D = property(lambda self: get_class('LineIntegralConvolution2D'))
C:\...\Enthought\Canopy32\User\lib\site-packages\tvtk\tvtk_classes.zip\tvtk_classes\tvtk_helper.py in get_class(name)
34 else:
35 fname = camel2enthought(name)
---> 36 mod = get_module(fname)
37 klass = getattr(mod, name)
38 _cache[name] = klass
C:\...\Enthought\Canopy32\User\lib\site-packages\tvtk\tvtk_classes.zip\tvtk_classes\tvtk_helper.py in get_module(fname)
26 # inside the tvtk_classes ZIP file and are local to the
27 # current module: tvtk_helper.py
---> 28 mod = __import__('tvtk.tvtk_classes.%s'%fname, globals(), locals(), [fname])
29 return mod
30
C:\...\Enthought\Canopy32\User\lib\site-packages\tvtk\tvtk_classes.zip\tvtk_classes\light.py in <module>()
C:\...\Enthought\Canopy32\User\lib\site-packages\tvtk\array_handler.py in <module>()
27
28 # Enthought library imports.
---> 29 from tvtk.array_ext import set_id_type_array
30
31 # Useful constants for VTK arrays.
ImportError: cannot import name set_id_type_array
Take a look at the "array_handler.py" file. In line 29
29 from tvtk.array_ext import set_id_type_array
There is no folder called "tvtk" in the folder were "array_handler.py" is running, as we are already inside a folder called tvtk. So the code should instead say:
from array_ext import set_id_type_array
The "array_handler.py" is found in your computer in
C:\...\Enthought\Canopy32\User\lib\site-packages\tvtk\array_handler.py
I had the same problem and this solved it.