Closed AthiemoneZero closed 2 months ago
I'm having many issues with running Napari with DLC. Currently, getting the error mentioned above.
Firstly, when I open Napari through DLC GUI, the labeled_videos folder will not open. It comes back with the error "pims has no attribute 'open'." I can load the config.yaml file without problem.
In an attempt to circumvent this error, I created a fresh environment for Napari using the instructions from their website. I attempted to install the deeplabcut plug-in, but this did not work
Error Message:
ModuleNotFoundError Traceback (most recent call last) File ~\anaconda3\envs\Napari\Lib\site-packages\npe2_command_registry.py:32, in CommandHandler.resolve(self=CommandHandler(id='napari-deeplabcut.make_keypoi...me='napari_deeplabcut._widgets:KeypointControls')) 31 try: ---> 32 self.function = utils.import_python_name(self.python_name) self.function = None self.python_name = 'napari_deeplabcut._widgets:KeypointControls' self = CommandHandler(id='napari-deeplabcut.make_keypoint_controls', function=None, python_name='napari_deeplabcut._widgets:KeypointControls') utils = <module 'npe2.manifest.utils' from 'C:\Users\Shelby\anaconda3\envs\Napari\Lib\site-packages\npe2\manifest\utils.py'> 33 except Exception as e:
File ~\anaconda3\envs\Napari\Lib\site-packages\npe2\manifest\utils.py:254, in import_python_name(python_name='napari_deeplabcut._widgets:KeypointControls') 252 module_name, funcname = match.groups() # type: ignore [union-attr] --> 254 mod = import_module(module_name) module_name = 'napari_deeplabcut._widgets' 255 return getattr(mod, funcname)
File ~\anaconda3\envs\Napari\Lib\importlib__init__.py:90, in import_module(name='napari_deeplabcut._widgets', package=None) 89 level += 1 ---> 90 return _bootstrap._gcd_import(name[level:], package, level) level = 0 name = 'napari_deeplabcut._widgets' name[level:] = 'napari_deeplabcut._widgets' package = None _bootstrap = <module '_frozen_importlib' (frozen)>
File
:1387, in _gcd_import(name='napari_deeplabcut._widgets', package=None, level=0) File
:1360, in _find_and_load(name='napari_deeplabcut.widgets', import= ) File
:1310, in _find_and_load_unlocked(name='napari_deeplabcut.widgets', import= ) File
:488, in _call_with_frames_removed(f= , *args=('napari_deeplabcut',), **kwds={}) File
:1387, in _gcd_import(name='napari_deeplabcut', package=None, level=0) File
:1360, in _find_and_load(name='naparideeplabcut', import= ) File
:1331, in _find_and_load_unlocked(name='naparideeplabcut', import= ) File
:935, in _load_unlocked(spec=ModuleSpec(name='napari_deeplabcut', loader=<_fr...\Napari\Lib\site-packages\napari_deeplabcut'])) File
:995, in exec_module(self=<_frozen_importlib_external.SourceFileLoader object>, module=<module 'napari_deeplabcut' from 'C:\Users\She...\site-packages\napari_deeplabcut\init.py'>) File
:488, in _call_with_frames_removed(f= , *args=(<code object at 0x000001CC0AE578A0, fil...-packages\napari_deeplabcut__init.py", line 1>, {'builtins': {'ArithmeticError': <class 'ArithmeticError'>, 'AssertionError': <class 'AssertionError'>, 'AttributeError': <class 'AttributeError'>, 'BaseException': <class 'BaseException'>, 'BaseExceptionGroup': <class 'BaseExceptionGroup'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'BufferError': <class 'BufferError'>, 'BytesWarning': <class 'BytesWarning'>, 'ChildProcessError': <class 'ChildProcessError'>, ...}, 'cached': r'C:\Users\Shelby\anaconda3\envs\Napari\Lib\site-p...i_deeplabcut__pycache__init.cpython-312.pyc', 'doc': None, 'file__': r'C:\Users\Shelby\anaconda3\envs\Napari\Lib\site-packages\napari_deeplabcut\init.py', 'loader__': <_frozen_importlib_external.SourceFileLoader object>, 'name': 'napari_deeplabcut', 'package': 'napari_deeplabcut', 'path': [r'C:\Users\Shelby\anaconda3\envs\Napari\Lib\site-packages\napari_deeplabcut'], 'spec': ModuleSpec(name='napari_deeplabcut', loader=<_fr...\Napari\Lib\site-packages\napari_deeplabcut']), 'version__': '0.0.7', ...}), **kwds={}) File ~\anaconda3\envs\Napari\Lib\site-packages\napari_deeplabcut__init__.py:19 12 from ._reader import ( 13 get_hdf_reader, 14 get_image_reader, (...) 17 get_config_reader, 18 ) ---> 19 from ._writer import write_hdf, write_masks
File ~\anaconda3\envs\Napari\Lib\site-packages\napari_deeplabcut_writer.py:7 6 from napari.layers import Shapes ----> 7 from napari.plugins._builtins import napari_write_shapes 8 from skimage.io import imsave
**ModuleNotFoundError: No module named 'napari.plugins._builtins'
The above exception was the direct cause of the following exception:
RuntimeError Traceback (most recent call last) File ~\anaconda3\envs\Napari\Lib\site-packages\napari_qt\menus\plugins_menu.py:105, in PluginsMenu._add_plugin_actions.
._add_toggle_widget(key=('napari-deeplabcut', 'Keypoint controls'), hook_type='dock') 102 return 104 if hook_type == 'dock': --> 105 self._win.add_plugin_dock_widget(key) key = ('napari-deeplabcut', 'Keypoint controls') self._win = <napari._qt.qt_main_window.Window object at 0x000001CBD40EDBB0> self = <napari._qt.menus.plugins_menu.PluginsMenu object at 0x000001CBE68D1490> 106 else: 107 self._win._add_plugin_function_widget(key) File ~\anaconda3\envs\Napari\Lib\site-packages\napari_qt\qt_main_window.py:876, in Window.add_plugin_dock_widget(self=
, plugin_name='napari-deeplabcut', widget_name='Keypoint controls', tabify=False) 873 Widget = None 874 dock_kwargs = {} --> 876 if result := _npe2.get_widget_contribution(plugin_name, widget_name): widget_name = 'Keypoint controls' plugin_name = 'napari-deeplabcut' _npe2 = <module 'napari.plugins._npe2' from 'C:\Users\Shelby\anaconda3\envs\Napari\Lib\site-packages\napari\plugins\_npe2.py'> 877 Widget, widget_name = result 879 if Widget is None: File ~\anaconda3\envs\Napari\Lib\site-packages\napari\plugins_npe2.py:136, in get_widget_contribution(plugin_name='napari-deeplabcut', widget_name='Keypoint controls') 134 if contrib.plugin_name == plugin_name: 135 if not widget_name or contrib.display_name == widget_name: --> 136 return contrib.get_callable(), contrib.display_name contrib = WidgetContribution(command='napari-deeplabcut.make_keypoint_controls', display_name='Keypoint controls', autogenerate=False) contrib.display_name = 'Keypoint controls' 137 widgets_seen.add(contrib.display_name) 138 if widget_name and widgets_seen:
File ~\anaconda3\envs\Napari\Lib\site-packages\npe2\manifest\contributions_widgets.py:49, in WidgetContribution.get_callable(self=WidgetContribution(command='napari-deeplabcut.ma...lay_name='Keypoint controls', autogenerate=False), _registry=None) 46 def get_callable( 47 self, _registry: Optional[CommandRegistry] = None 48 ) -> Callable[..., Widget]: ---> 49 func = super().get_callable() 50 if self.autogenerate: 51 try:
File ~\anaconda3\envs\Napari\Lib\site-packages\npe2\manifest\utils.py:71, in Executable.get_callable(self=WidgetContribution(command='napari-deeplabcut.ma...lay_name='Keypoint controls', autogenerate=False), _registry=
) 68 from npe2._plugin_manager import PluginManager 70 _registry = PluginManager.instance().commands ---> 71 return _registry.get(self.command) _registry = <npe2._command_registry.CommandRegistry object at 0x000001CBD0D34CB0> self.command = 'napari-deeplabcut.make_keypoint_controls' self = WidgetContribution(command='napari-deeplabcut.make_keypoint_controls', display_name='Keypoint controls', autogenerate=False) File ~\anaconda3\envs\Napari\Lib\site-packages\npe2_command_registry.py:138, in CommandRegistry.get(self=
, id='napari-deeplabcut.make_keypoint_controls') 136 if id not in self._commands: # sourcery skip 137 raise KeyError(f"command {id!r} not registered") --> 138 return self._commands[id].resolve() id = 'napari-deeplabcut.make_keypoint_controls' self._commands = {'napari-deeplabcut.get_hdf_reader': CommandHandler(id='napari-deeplabcut.get_hdf_reader', function=None, python_name='napari_deeplabcut._reader:get_hdf_reader'), 'napari-deeplabcut.get_image_reader': CommandHandler(id='napari-deeplabcut.get_image_reader', function=<function get_image_reader at 0x000001CBF19FA520>, python_name='napari_deeplabcut._reader:get_image_reader'), 'napari-deeplabcut.get_video_reader': CommandHandler(id='napari-deeplabcut.get_video_reader', function=<function get_video_reader at 0x000001CBF19FA2A0>, python_name='napari_deeplabcut._reader:get_video_reader'), 'napari-deeplabcut.get_folder_parser': CommandHandler(id='napari-deeplabcut.get_folder_parser', function=<function get_folder_parser at 0x000001CBF19FB2E0>, python_name='napari_deeplabcut._reader:get_folder_parser'), 'napari-deeplabcut.get_config_reader': CommandHandler(id='napari-deeplabcut.get_config_reader', function=<function get_config_reader at 0x000001CBF19FA7A0>, python_name='napari_deeplabcut._reader:get_config_reader'), 'napari-deeplabcut.write_hdf': CommandHandler(id='napari-deeplabcut.write_hdf', function=None, python_name='napari_deeplabcut._writer:write_hdf'), 'napari-deeplabcut.write_masks': CommandHandler(id='napari-deeplabcut.write_masks', function=None, python_name='napari_deeplabcut._writer:write_masks'), 'napari-deeplabcut.make_keypoint_controls': CommandHandler(id='napari-deeplabcut.make_keypoint_controls', function=None, python_name='napari_deeplabcut._widgets:KeypointControls')} self = <npe2._command_registry.CommandRegistry object at 0x000001CBD0D34CB0> self._commands[id] = CommandHandler(id='napari-deeplabcut.make_keypoint_controls', function=None, python_name='napari_deeplabcut._widgets:KeypointControls') File ~\anaconda3\envs\Napari\Lib\site-packages\npe2_command_registry.py:34, in CommandHandler.resolve(self=CommandHandler(id='napari-deeplabcut.make_keypoi...me='napari_deeplabcut._widgets:KeypointControls')) 32 self.function = utils.import_python_name(self.python_name) 33 except Exception as e: ---> 34 raise RuntimeError( self.python_name = 'napari_deeplabcut._widgets:KeypointControls' self = CommandHandler(id='napari-deeplabcut.make_keypoint_controls', function=None, python_name='napari_deeplabcut._widgets:KeypointControls') 35 f"Failed to import command at {self.python_name!r}: {e}" 36 ) from e 38 return self.function
RuntimeError: Failed to import command at 'napari_deeplabcut._widgets:KeypointControls': No module named 'napari.plugins._builtins'
Hi @AthiemoneZero! napari-deeplabcut
should normally come installed with pyside6==6.4.2
https://github.com/DeepLabCut/DeepLabCut/blob/fbaf36aee285564f18f78384bb94cc20c116297c/setup.py#L49C1-L53C11
Could you run pip uninstall pyqt5
(which must have come from a previous installation), followed by pip install pyside6==6.4.2
? This should fix it, let me know otherwise.
QtBindingMissingModuleError Traceback (most recent call last) File ~\AppData\Roaming\Python\Python39\site-packages\npe2_command_registry.py:32, in CommandHandler.resolve(self=CommandHandler(id='napari-deeplabcut.make_keypoi...me='napari_deeplabcut._widgets:KeypointControls')) 31 try: ---> 32 self.function = utils.import_python_name(self.python_name) self.function = None self.python_name = 'napari_deeplabcut._widgets:KeypointControls' self = CommandHandler(id='napari-deeplabcut.make_keypoint_controls', function=None, python_name='napari_deeplabcut._widgets:KeypointControls') utils = <module 'npe2.manifest.utils' from 'C:\Users\AshPC\AppData\Roaming\Python\Python39\site-packages\npe2\manifest\utils.py'> 33 except Exception as e:
File ~\AppData\Roaming\Python\Python39\site-packages\npe2\manifest\utils.py:254, in import_python_name(python_name='napari_deeplabcut._widgets:KeypointControls') 252 module_name, funcname = match.groups() # type: ignore [union-attr] --> 254 mod = import_module(module_name) module_name = 'napari_deeplabcut._widgets' 255 return getattr(mod, funcname)
File ~\anaconda3\envs\DEEPLABCUT\lib\importlib__init__.py:127, in import_module(name='napari_deeplabcut._widgets', package=None) 126 level += 1 --> 127 return _bootstrap._gcd_import(name[level:], package, level) level = 0 name = 'napari_deeplabcut._widgets' name[level:] = 'napari_deeplabcut._widgets' package = None _bootstrap = <module 'importlib._bootstrap' (frozen)>
File
File
File
File
File
File
File ~\AppData\Roaming\Python\Python39\site-packages\napari_deeplabcut_widgets.py:28 27 from qtpy.QtGui import QPainter, QAction, QCursor, QIcon ---> 28 from qtpy.QtSvgWidgets import QSvgWidget 29 from qtpy.QtWidgets import ( 30 QButtonGroup, 31 QCheckBox, (...) 48 QWidget, 49 )
File ~\anaconda3\envs\DEEPLABCUT\Lib\site-packages\shiboken2\files.dir\shibokensupport__feature.py:142, in _import(name='qtpy.QtSvgWidgets', *args=({'Event': <class 'napari.utils.events.event.Event'>, 'FigureCanvas': <class 'matplotlib.backends.backend_qtagg.FigureCanvasQTAgg'>, 'Image': <class 'napari.layers.image.image.Image'>, 'MethodType': <class 'method'>, 'NavigationToolbar2QT': <class 'matplotlib.backends.backend_qt.NavigationToolbar2QT'>, 'Optional': typing.Optional, 'Path': <class 'pathlib.Path'>, 'Points': <class 'napari.layers.points.points.Points'>, 'QAction': <class 'PySide2.QtWidgets.QAction'>, 'QCursor': <class 'PySide2.QtGui.QCursor'>, ...}, {'Event': <class 'napari.utils.events.event.Event'>, 'FigureCanvas': <class 'matplotlib.backends.backend_qtagg.FigureCanvasQTAgg'>, 'Image': <class 'napari.layers.image.image.Image'>, 'MethodType': <class 'method'>, 'NavigationToolbar2QT': <class 'matplotlib.backends.backend_qt.NavigationToolbar2QT'>, 'Optional': typing.Optional, 'Path': <class 'pathlib.Path'>, 'Points': <class 'napari.layers.points.points.Points'>, 'QAction': <class 'PySide2.QtWidgets.QAction'>, 'QCursor': <class 'PySide2.QtGui.QCursor'>, ...}, ('QSvgWidget',), 0), *kwargs={})
141 pyside_feature_dict[importing_module] = flag
--> 142 return original_import(name, args, **kwargs)
original_import = <built-in function import>
name = 'qtpy.QtSvgWidgets'
args = ({'name': 'napari_deeplabcut._widgets', 'doc': None, 'package': 'napari_deeplabcut', 'loader': <_frozen_importlib_external.SourceFileLoader object at 0x0000021A7E153340>, 'spec': ModuleSpec(name='napari_deeplabcut._widgets', loader=<_frozen_importlib_external.SourceFileLoader object at 0x0000021A7E153340>, origin='C:\Users\AshPC\AppData\Roaming\Python\Python39\site-packages\napari_deeplabcut\_widgets.py'), 'file': 'C:\Users\AshPC\AppData\Roaming\Python\Python39\site-packages\napari_deeplabcut\_widgets.py', 'cached': 'C:\Users\AshPC\AppData\Roaming\Python\Python39\site-packages\napari_deeplabcut\pycache\_widgets.cpython-39.pyc', 'builtins': {'name': 'builtins', 'doc': "Built-in functions, exceptions, and other objects.\n\nNoteworthy: None is the nil' object; Ellipsis represents
...' in slices.", 'package': '', 'loader': <class '_frozen_importlib.BuiltinImporter'>, 'spec': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'build_class': <built-in function build_class>, 'import__': <function _import at 0x0000021A6EAA3310>, 'abs':
Copyright (c) 2000 BeOpen.com. All Rights Reserved.
Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.
Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
for supporting Python development. See www.python.org for more information., 'license': See https://www.python.org/psf/license/, 'help': Type help() for interactive help, or help(object) for help about object., '_init_pyside_extension': nil' object; Ellipsis represents
...' in slices.", 'package': '', 'loader': <class '_frozen_importlib.BuiltinImporter'>, 'spec': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>, origin='built-in'), 'build_class': <built-in function build_class>, 'import': <function _import at 0x0000021A6EAA3310>, 'abs':
Copyright (c) 2000 BeOpen.com. All Rights Reserved.
Copyright (c) 1995-2001 Corporation for National Research Initiatives. All Rights Reserved.
Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
All Rights Reserved., 'credits': Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
for supporting Python development. See www.python.org for more information., 'license': See https://www.python.org/psf/license/, 'help': Type help() for interactive help, or help(object) for help about object., '_init_pyside_extension':
File ~\anaconda3\envs\DEEPLABCUT\lib\site-packages\qtpy\QtSvgWidgets.py:23 22 elif PYSIDE2: ---> 23 raise QtBindingMissingModuleError(name="QtSvgWidgets") 24 elif PYSIDE6:
QtBindingMissingModuleError: The QtSvgWidgets module was not found. It is not currently implemented in PySide2.
The above exception was the direct cause of the following exception:
RuntimeError Traceback (most recent call last)
File ~\AppData\Roaming\Python\Python39\site-packages\napari_qt\menus\plugins_menu.py:105, in PluginsMenu._add_plugin_actions.
File ~\AppData\Roaming\Python\Python39\site-packages\napari_qt\qt_main_window.py:790, in Window.add_plugin_dock_widget(self=
File ~\AppData\Roaming\Python\Python39\site-packages\napari\plugins_npe2.py:136, in get_widget_contribution(plugin_name='napari-deeplabcut', widget_name='Keypoint controls') 134 if contrib.plugin_name == plugin_name: 135 if not widget_name or contrib.display_name == widget_name: --> 136 return contrib.get_callable(), contrib.display_name contrib = WidgetContribution(command='napari-deeplabcut.make_keypoint_controls', display_name='Keypoint controls', autogenerate=False) contrib.display_name = 'Keypoint controls' 137 widgets_seen.add(contrib.display_name) 138 if widget_name and widgets_seen:
File ~\AppData\Roaming\Python\Python39\site-packages\npe2\manifest\contributions_widgets.py:49, in WidgetContribution.get_callable(self=WidgetContribution(command='napari-deeplabcut.ma...lay_name='Keypoint controls', autogenerate=False), _registry=None) 46 def get_callable( 47 self, _registry: Optional[CommandRegistry] = None 48 ) -> Callable[..., Widget]: ---> 49 func = super().get_callable() 50 if self.autogenerate: 51 try:
File ~\AppData\Roaming\Python\Python39\site-packages\npe2\manifest\utils.py:71, in Executable.get_callable(self=WidgetContribution(command='napari-deeplabcut.ma...lay_name='Keypoint controls', autogenerate=False), _registry=
File ~\AppData\Roaming\Python\Python39\site-packages\npe2_command_registry.py:138, in CommandRegistry.get(self=
File ~\AppData\Roaming\Python\Python39\site-packages\npe2_command_registry.py:34, in CommandHandler.resolve(self=CommandHandler(id='napari-deeplabcut.make_keypoi...me='napari_deeplabcut._widgets:KeypointControls')) 32 self.function = utils.import_python_name(self.python_name) 33 except Exception as e: ---> 34 raise RuntimeError( 35 f"Failed to import command at {self.python_name!r}: {e}" 36 ) from e 38 return self.function
RuntimeError: Failed to import command at 'napari_deeplabcut._widgets:KeypointControls': The QtSvgWidgets module was not found. It is not currently implemented in PySide2.
How can i implement QtSvgWidgets module? Thanks in advance
I would make a fresh conda at this point; there is some wrong as we use pyside6...
Let me know if you need commands/help with that! 😀
I made a new environment for the napari and now it works! thank you so much for the answer! ^^
YAY! very glad to hear that 👯
After opening GUI by typing down
napari
and turning onKeypointControls: napari_deeplabcut
button in the plugins, it turns out to run into error:RuntimeError: Failed to import command at 'napari_deeplabcut._widgets:KeypointControls': The Qt SvgWidgets module was not found. It is not currently implemented in PyQt5.
Trace back: