mayavi icon indicating copy to clipboard operation
mayavi copied to clipboard

`mayavi2` crashes with an error from plugins

Open rat-h opened this issue 9 months ago • 1 comments

Using this suggestion, and installing numpy version 1.26.4, I still cannot run demo.

System:

$ cat /etc/lsb-release
DISTRIB_ID=Pop
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS"

venv:

~/projects/TEST/PY-MayAvi$ pip freeze
apptools==5.3.0
configobj==5.0.9
contourpy==1.3.1
cycler==0.12.1
envisage==7.0.3
fonttools==4.56.0
kiwisolver==1.4.8
matplotlib==3.10.1
mayavi==4.8.2
numpy==1.26.4
packaging==24.2
pillow==11.1.0
pyface==8.0.0
Pygments==2.19.1
pyparsing==3.2.1
PyQt5==5.15.11
PyQt5-Qt5==5.15.16
PyQt5_sip==12.17.0
python-dateutil==2.9.0.post0
six==1.17.0
traits==7.0.2
traitsui==8.0.0
vtk==9.4.1
$ mayavi2 
/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/pyface/ui/qt/workbench/split_tab_widget.py:125: UserWarning: Attempting to restore to a non-empty widget.
  warnings.warn("Attempting to restore to a non-empty widget.")
ERROR|2025-03-10 10:27:57,539|error creating editor control [TVTK Scene 1]
Traceback (most recent call last):
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/pyface/ui/qt/workbench/workbench_window_layout.py", line 91, in add_editor
    self._qt4_get_editor_control(editor), title
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/pyface/ui/qt/workbench/workbench_window_layout.py", line 444, in _qt4_get_editor_control
    editor.control = editor.create_control(self.window.control)
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/tvtk/plugins/scene/scene_editor.py", line 62, in create_control
    self.scene = self._create_decorated_scene(parent)
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/tvtk/plugins/scene/scene_editor.py", line 88, in _create_decorated_scene
    scene = DecoratedScene(parent, stereo=stereo)
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/tvtk/pyface/ui/qt4/decorated_scene.py", line 57, in __init__
    super(DecoratedScene, self).__init__(parent, **traits)
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/tvtk/pyface/ui/qt4/scene.py", line 336, in __init__
    self.picker = picker.Picker(self)
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/tvtk/pyface/picker.py", line 276, in __init__
    self.probe_data = tvtk.PolyData()
  File "tvtk_classes/poly_data.py", line 88, in __init__
    tvtk_base.TVTKBase.__init__(self, vtk.vtkPolyData, obj, update, **traits)
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/tvtk/tvtk_base.py", line 435, in __init__
    self.setup_observers()
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/tvtk/tvtk_base.py", line 536, in setup_observers
    _object_cache.setup_observers(self._vtk_obj,
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/tvtk/tvtk_base.py", line 93, in setup_observers
    messenger.connect(vtk_obj, event, method)
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/tvtk/messenger.py", line 302, in connect
    _messenger.connect(obj, event, callback)
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/tvtk/messenger.py", line 148, in connect
    key = hash(obj)
TypeError: unhashable type: 'PolyData'
Traceback (most recent call last):
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/pyface/ui/qt/gui.py", line 190, in _dispatch
    self._callable(*self._args, **self._kw)
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/mayavi/scripts/mayavi2.py", line 487, in run
    process_cmd_line(self, options, args)
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/mayavi/scripts/mayavi2.py", line 272, in process_cmd_line
    last_obj = script.new_scene()
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/mayavi/plugins/script.py", line 84, in new_scene
    return self.engine.new_scene()
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/apptools/scripting/recordable.py", line 48, in _wrapper
    result = func(*args, **kw)
  File "/media/projects/TEST/PY-MayAvi/myavi2/lib/python3.10/site-packages/mayavi/plugins/envisage_engine.py", line 92, in new_scene
    return self.scenes[-1]
IndexError: list index out of range

The main window appears for a second and almost immediately app crashes.

rat-h avatar Mar 10 '25 14:03 rat-h

Can you try #1345 ?

larsoner avatar May 06 '25 16:05 larsoner