FS#77385 - [mayavi] Module import fails because of missing tests folder
Attached to Project:
Community Packages
Opened by drocheam (drocheam) - Saturday, 04 February 2023, 15:12 GMT
Last edited by David Runge (dvzrv) - Monday, 06 February 2023, 16:55 GMT
Opened by drocheam (drocheam) - Saturday, 04 February 2023, 15:12 GMT
Last edited by David Runge (dvzrv) - Monday, 06 February 2023, 16:55 GMT
|
Details
Package Version: 4.8.1-3
The following line 114 in the PKGBUILD: rm -frv "$pkgdir/$site_packages/$pkgname/tests/" removes the mayavi/tests folder that is needed to import mayavi.api. Otherwise the following command fails: from mayavi.core.ui.api import MayaviScene, MlabSceneModel, SceneEditor File "/usr/lib/python3.10/site-packages/mayavi/core/ui/api.py", line 5, in <module> from mayavi.core.ui.engine_view import EngineView File "/usr/lib/python3.10/site-packages/mayavi/core/ui/engine_view.py", line 27, in <module> from mayavi.action.help import open_help_index, open_tvtk_docs File "/usr/lib/python3.10/site-packages/mayavi/action/help.py", line 20, in <module> import mayavi.api File "/usr/lib/python3.10/site-packages/mayavi/api.py", line 4, in <module> from mayavi.tests.runtests import m2_tests as test ModuleNotFoundError: No module named 'mayavi.tests' You can see mayavi.api directly importing mayavi.tests here: https://github.com/enthought/mayavi/blob/05b02f41b141a6bd916faaed23cf82381a4b362e/mayavi/api.py My suggestion would be to remove the line cleaning up the tests folder in the PKGBUILD. |
This task depends upon
Closed by David Runge (dvzrv)
Monday, 06 February 2023, 16:55 GMT
Reason for closing: Fixed
Additional comments about closing: Issue fixed with mayavi 4.8.1-4
Monday, 06 February 2023, 16:55 GMT
Reason for closing: Fixed
Additional comments about closing: Issue fixed with mayavi 4.8.1-4
However, with mayavi releases and fixes coming only every few months, the issue would also persist for at least that long.
Wouldn't it be reasonable to adapt the PKGBUILD temporarily?
Unfortunately the executable seems broken nonetheless due to some python-traits related stuff:
```
ERROR|2023-02-06 17:50:30,771|getting extensions from Plugin(id='envisage.ui.workbench', name='Workbench'), trait <my_action_sets>
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/envisage/plugin.py", line 326, in _get_extensions_from_trait
extensions = getattr(self, trait_name)
File "/usr/lib/python3.10/site-packages/envisage/ui/workbench/workbench_plugin.py", line 185, in _my_action_sets_default
from .default_action_set import DefaultActionSet
File "/usr/lib/python3.10/site-packages/envisage/ui/workbench/default_action_set.py", line 21, in <module>
class DefaultActionSet(ActionSet):
File "/usr/lib/python3.10/site-packages/envisage/ui/workbench/default_action_set.py", line 25, in DefaultActionSet
Menu(
File "/usr/lib/python3.10/site-packages/traits/trait_types.py", line 2695, in validate
return TraitListObject(self, object, name, value)
File "/usr/lib/python3.10/site-packages/traits/trait_list_object.py", line 584, in __init__
super().__init__(
File "/usr/lib/python3.10/site-packages/traits/trait_list_object.py", line 213, in __init__
super().__init__(self.item_validator(item) for item in iterable)
File "/usr/lib/python3.10/site-packages/traits/trait_list_object.py", line 213, in <genexpr>
super().__init__(self.item_validator(item) for item in iterable)
File "/usr/lib/python3.10/site-packages/traits/trait_list_object.py", line 867, in _item_validator
return trait_validator(object, self.name, value)
File "/usr/lib/python3.10/site-packages/traits/base_trait_handler.py", line 74, in error
raise TraitError(
traits.trait_errors.TraitError: Each element of the 'groups' trait of a Menu instance must be a Group or None, but a value of 'OpenGroup' <class 'str'> was specified.
Traceback (most recent call last):
File "/usr/bin/mayavi2", line 8, in <module>
sys.exit(main())
File "/usr/lib/python3.10/site-packages/mayavi/scripts/mayavi2.py", line 600, in main
mayavi.main(sys.argv[1:])
File "/usr/lib/python3.10/site-packages/mayavi/plugins/app.py", line 197, in main
app.run()
File "/usr/lib/python3.10/site-packages/mayavi/plugins/mayavi_workbench_application.py", line 81, in run
window.open()
File "/usr/lib/python3.10/site-packages/pyface/workbench/workbench_window.py", line 159, in open
self._create()
File "/usr/lib/python3.10/site-packages/pyface/ui/qt4/application_window.py", line 138, in _create
self._create_trim_widgets(self.control)
File "/usr/lib/python3.10/site-packages/pyface/i_application_window.py", line 155, in _create_trim_widgets
self._create_menu_bar(parent)
File "/usr/lib/python3.10/site-packages/pyface/ui/qt4/application_window.py", line 79, in _create_menu_bar
if self.menu_bar_manager is not None:
File "/usr/lib/python3.10/site-packages/envisage/ui/workbench/workbench_window.py", line 106, in _menu_bar_manager_default
return self._action_manager_builder.create_menu_bar_manager("MenuBar")
File "/usr/lib/python3.10/site-packages/envisage/ui/workbench/workbench_window.py", line 224, in __action_manager_builder_default
window=self, action_sets=self.action_sets
File "/usr/lib/python3.10/site-packages/envisage/ui/workbench/workbench_window.py", line 168, in _action_sets_default
return [factory(window=self) for factory in self._action_sets]
File "/usr/lib/python3.10/site-packages/envisage/extension_point.py", line 122, in get
extensions = extension_registry.get_extensions(self.id)
File "/usr/lib/python3.10/site-packages/envisage/application.py", line 203, in get_extensions
return self.extension_registry.get_extensions(extension_point_id)
File "/usr/lib/python3.10/site-packages/envisage/extension_registry.py", line 110, in get_extensions
return self._get_extensions(extension_point_id)[:]
File "/usr/lib/python3.10/site-packages/envisage/provider_extension_registry.py", line 99, in _get_extensions
extensions = self._initialize_extensions(extension_point_id)
File "/usr/lib/python3.10/site-packages/envisage/provider_extension_registry.py", line 279, in _initialize_extensions
extensions.append(provider.get_extensions(extension_point_id)[:])
File "/usr/lib/python3.10/site-packages/envisage/plugin.py", line 137, in get_extensions
extensions = self._get_extensions_from_trait(trait_names[0])
File "/usr/lib/python3.10/site-packages/envisage/plugin.py", line 326, in _get_extensions_from_trait
extensions = getattr(self, trait_name)
File "/usr/lib/python3.10/site-packages/envisage/ui/workbench/workbench_plugin.py", line 185, in _my_action_sets_default
from .default_action_set import DefaultActionSet
File "/usr/lib/python3.10/site-packages/envisage/ui/workbench/default_action_set.py", line 21, in <module>
class DefaultActionSet(ActionSet):
File "/usr/lib/python3.10/site-packages/envisage/ui/workbench/default_action_set.py", line 25, in DefaultActionSet
Menu(
File "/usr/lib/python3.10/site-packages/traits/trait_types.py", line 2695, in validate
return TraitListObject(self, object, name, value)
File "/usr/lib/python3.10/site-packages/traits/trait_list_object.py", line 584, in __init__
super().__init__(
File "/usr/lib/python3.10/site-packages/traits/trait_list_object.py", line 213, in __init__
super().__init__(self.item_validator(item) for item in iterable)
File "/usr/lib/python3.10/site-packages/traits/trait_list_object.py", line 213, in <genexpr>
super().__init__(self.item_validator(item) for item in iterable)
File "/usr/lib/python3.10/site-packages/traits/trait_list_object.py", line 867, in _item_validator
return trait_validator(object, self.name, value)
File "/usr/lib/python3.10/site-packages/traits/base_trait_handler.py", line 74, in error
raise TraitError(
traits.trait_errors.TraitError: Each element of the 'groups' trait of a Menu instance must be a Group or None, but a value of 'OpenGroup' <class 'str'> was specified.
```