Question

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
Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top