FS#68802 - [cura] Missing dependencies cause plugins not run properly

Attached to Project: Community Packages
Opened by Jan (yagarea) - Tuesday, 01 December 2020, 01:48 GMT
Last edited by Doug Newgard (Scimmia) - Tuesday, 01 December 2020, 03:11 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To No-one
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description: Missing dependencies python-trimesh and python-networkx. It caused some plugins not run properly or run at all. For example mesh tools.

There is github issue on plugin repo: https://github.com/fieldOfView/Cura-MeshTools/issues/18

There is log containg error message:

```
2020-11-30 19:20:21,795 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: Exception: Import error loading module MeshTools
2020-11-30 19:20:21,795 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: Traceback (most recent call last):
2020-11-30 19:20:21,796 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "/usr/lib/python3.8/site-packages/UM/PluginRegistry.py", line 606, in _findPlugin
2020-11-30 19:20:21,796 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: module = imp.load_module(plugin_id, file, path, desc) #type: ignore #MyPy gets the wrong output type from imp.find_module for some reason.
2020-11-30 19:20:21,796 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "/usr/lib/python3.8/imp.py", line 244, in load_module
2020-11-30 19:20:21,796 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: return load_package(name, filename)
2020-11-30 19:20:21,796 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "/usr/lib/python3.8/imp.py", line 216, in load_package
2020-11-30 19:20:21,796 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: return _load(spec)
2020-11-30 19:20:21,796 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "<frozen importlib._bootstrap>", line 702, in _load
2020-11-30 19:20:21,796 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
2020-11-30 19:20:21,797 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "<frozen importlib._bootstrap_external>", line 783, in exec_module
2020-11-30 19:20:21,797 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2020-11-30 19:20:21,797 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "/home/john/.local/share/cura/4.7/plugins/MeshTools/MeshTools/__init__.py", line 4, in <module>
2020-11-30 19:20:21,797 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: from . import MeshTools
2020-11-30 19:20:21,797 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "/home/john/.local/share/cura/4.7/plugins/MeshTools/MeshTools/MeshTools.py", line 39, in <module>
2020-11-30 19:20:21,797 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: import trimesh
2020-11-30 19:20:21,797 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: ModuleNotFoundError: No module named 'trimesh'
2020-11-30 19:20:21,797 - WARNING - [MainThread] UM.PluginRegistry._populateMetaData [678]: Could not find plugin MeshTools
2020-11-30 19:20:21,798 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: Exception: Import error loading module MeshTools
2020-11-30 19:20:21,798 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: Traceback (most recent call last):
2020-11-30 19:20:21,798 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "/usr/lib/python3.8/site-packages/UM/PluginRegistry.py", line 606, in _findPlugin
2020-11-30 19:20:21,799 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: module = imp.load_module(plugin_id, file, path, desc) #type: ignore #MyPy gets the wrong output type from imp.find_module for some reason.
2020-11-30 19:20:21,799 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "/usr/lib/python3.8/imp.py", line 244, in load_module
2020-11-30 19:20:21,799 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: return load_package(name, filename)
2020-11-30 19:20:21,799 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "/usr/lib/python3.8/imp.py", line 216, in load_package
2020-11-30 19:20:21,799 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: return _load(spec)
2020-11-30 19:20:21,799 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "<frozen importlib._bootstrap>", line 702, in _load
2020-11-30 19:20:21,799 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
2020-11-30 19:20:21,799 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "<frozen importlib._bootstrap_external>", line 783, in exec_module
2020-11-30 19:20:21,799 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2020-11-30 19:20:21,800 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "/home/john/.local/share/cura/4.7/plugins/MeshTools/MeshTools/__init__.py", line 4, in <module>
2020-11-30 19:20:21,800 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: from . import MeshTools
2020-11-30 19:20:21,800 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: File "/home/john/.local/share/cura/4.7/plugins/MeshTools/MeshTools/MeshTools.py", line 39, in <module>
2020-11-30 19:20:21,800 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: import trimesh
2020-11-30 19:20:21,800 - ERROR - [MainThread] UM.PluginRegistry._findPlugin [608]: ModuleNotFoundError: No module named 'trimesh'
Traceback (most recent call last):
File "/home/john/.local/share/cura/4.7/plugins/MeshTools/MeshTools/MeshTools.py", line 327, in splitMeshes
self._replaceSceneNode(node, tri_node.split(only_watertight=False))
File "/usr/lib/python3.8/site-packages/trimesh/constants.py", line 134, in timed
result = method(*args, **kwargs)
File "/usr/lib/python3.8/site-packages/trimesh/base.py", line 1291, in split
return graph.split(self, **kwargs)
File "/usr/lib/python3.8/site-packages/trimesh/graph.py", line 345, in split
meshes = mesh.submesh(
File "/usr/lib/python3.8/site-packages/trimesh/base.py", line 2503, in submesh
return util.submesh(mesh=self,
File "/usr/lib/python3.8/site-packages/trimesh/util.py", line 1652, in submesh
watertight = np.array([i.fill_holes() and len(i.faces) >= 4
File "/usr/lib/python3.8/site-packages/trimesh/util.py", line 1652, in <listcomp>
watertight = np.array([i.fill_holes() and len(i.faces) >= 4
File "/usr/lib/python3.8/site-packages/trimesh/base.py", line 1788, in fill_holes
return repair.fill_holes(self)
File "/usr/lib/python3.8/site-packages/trimesh/repair.py", line 257, in fill_holes
g = nx.from_edgelist(
File "/usr/lib/python3.8/site-packages/trimesh/exceptions.py", line 28, in __getattribute__
raise super(ExceptionModule, self).__getattribute__('exc')
File "/usr/lib/python3.8/site-packages/trimesh/repair.py", line 19, in <module>
import networkx as nx
ModuleNotFoundError: No module named 'networkx'
```

Additional info:
* cura version: 4.7.1
* default config
* link to upstream bug report, if any

Steps to reproduce:
install cura and use built in market place to install plugin mesh tools.
This task depends upon

Closed by  Doug Newgard (Scimmia)
Tuesday, 01 December 2020, 03:11 GMT
Reason for closing:  Not a bug
Comment by Doug Newgard (Scimmia) - Tuesday, 01 December 2020, 03:11 GMT
The package can't account for modules you install from outside of the package. Those deps could be anything.

Loading...