DeepLabCut / napari-deeplabcut

a napari plugin for labeling and refining keypoint data within DeepLabCut projects
GNU Lesser General Public License v3.0
51 stars 22 forks source link

Failed to import command at 'napari_deeplabcut._widgets:KeypointControls': #129

Closed AthiemoneZero closed 2 months ago

AthiemoneZero commented 4 months ago

After opening GUI by typing down napari and turning on KeypointControls: 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:

QtBindingMissingModuleError               Traceback (most recent call last)
File ~\anaconda3\Lib\site-packages\npe2\_command_registry.py:32, in CommandHandler.resolve(self
=CommandHandler(id='napari-deeplabcut.make_keypoi...me='napari_deeplabcut._widgets:KeypointCont
rols'))
     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, pyt
hon_name='napari_deeplabcut._widgets:KeypointControls')
        utils = <module 'npe2.manifest.utils' from 'C:\\Users\\Admin\\anaconda3\\Lib\\site-pack
ages\\npe2\\manifest\\utils.py'>
     33 except Exception as e:

File ~\anaconda3\Lib\site-packages\npe2\manifest\utils.py:254, in import_python_name(python_nam
e='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\Lib\importlib\__init__.py:126, in import_module(name='napari_deeplabcut._widge
ts', package=None)
    125         level += 1
--> 126 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 <frozen importlib._bootstrap>:1204, in _gcd_import(name='napari_deeplabcut._widgets', pack
age=None, level=0)

File <frozen importlib._bootstrap>:1176, in _find_and_load(name='napari_deeplabcut._widgets', i
mport_=<function _gcd_import>)

File <frozen importlib._bootstrap>:1147, in _find_and_load_unlocked(name='napari_deeplabcut._wi
dgets', import_=<function _gcd_import>)

File <frozen importlib._bootstrap>:690, in _load_unlocked(spec=ModuleSpec(name='napari_deeplabc
ut._widgets', lo...\\site-packages\\napari_deeplabcut\\_widgets.py'))

File <frozen importlib._bootstrap_external>:940, in exec_module(self=<_frozen_importlib_externa
l.SourceFileLoader object>, module=<module 'napari_deeplabcut._widgets' from 'C:\\U...\\site-pa
ckages\\napari_deeplabcut\\_widgets.py'>)

File <frozen importlib._bootstrap>:241, in _call_with_frames_removed(f=<built-in function exec>
, *args=(<code object <module> at 0x000002361AEDC790, fil...-packages\napari_deeplabcut\_widget
s.py", line 1>, {'Event': <class 'napari.utils.events.event.Event'>, 'FigureCanvas': <class 'ma
tplotlib.backends.backend_qtagg.FigureCanvasQTAgg'>, 'Image': <class 'napari.layers.image.image
.Image'>, 'MethodType': <class 'method'>, 'NavigationToolbar2QT': <class 'matplotlib.backends.b
ackend_qt.NavigationToolbar2QT'>, 'Optional': typing.Optional, 'Path': <class 'pathlib.Path'>, 
'Points': <class 'napari.layers.points.points.Points'>, 'QAction': <class 'PyQt5.QtWidgets.QAct
ion'>, 'QCursor': <class 'PyQt5.QtGui.QCursor'>, ...}), **kwds={})

File ~\anaconda3\Lib\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\Lib\site-packages\qtpy\QtSvgWidgets.py:19
     18 if PYQT5:
---> 19     raise QtBindingMissingModuleError(name="QtSvgWidgets")
     20 elif PYQT6:

QtBindingMissingModuleError: The QtSvgWidgets module was not found. It is not currently impleme
nted in PyQt5.

The above exception was the direct cause of the following exception:

RuntimeError                              Traceback (most recent call last)
File ~\anaconda3\Lib\site-packages\napari\_qt\menus\plugins_menu.py:105, in PluginsMenu._add_pl
ugin_actions.<locals>._add_toggle_widget(key=('napari-deeplabcut', 'Keypoint controls'), hook_t
ype='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 0x000002360F118950>
        self = <napari._qt.menus.plugins_menu.PluginsMenu object at 0x0000023618264820>        
    106 else:
    107     self._win._add_plugin_function_widget(*key)

File ~\anaconda3\Lib\site-packages\napari\_qt\qt_main_window.py:790, in Window.add_plugin_dock_
widget(self=<napari._qt.qt_main_window.Window object>, plugin_name='napari-deeplabcut', widget_
name='Keypoint controls', tabify=False)
    787 Widget = None
    788 dock_kwargs = {}
--> 790 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\\Admin\\anaconda3\\Lib\\site-pac
kages\\napari\\plugins\\_npe2.py'>
    791     Widget, widget_name = result
    793 if Widget is None:

File ~\anaconda3\Lib\site-packages\napari\plugins\_npe2.py:136, in get_widget_contribution(plug
in_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', displa
y_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\Lib\site-packages\npe2\manifest\contributions\_widgets.py:49, in WidgetContrib
ution.get_callable(self=WidgetContribution(command='napari-deeplabcut.ma...lay_name='Keypoint c
ontrols', 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\Lib\site-packages\npe2\manifest\utils.py:71, in Executable.get_callable(self=W
idgetContribution(command='napari-deeplabcut.ma...lay_name='Keypoint controls', autogenerate=Fa
lse), _registry=<npe2._command_registry.CommandRegistry object>)
     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 0x000002360C7C83D0>      
        self.command = 'napari-deeplabcut.make_keypoint_controls'
        self = WidgetContribution(command='napari-deeplabcut.make_keypoint_controls', display_n
ame='Keypoint controls', autogenerate=False)

File ~\anaconda3\Lib\site-packages\npe2\_command_registry.py:138, in CommandRegistry.get(self=<
npe2._command_registry.CommandRegistry object>, 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-deeplab
cut.get_hdf_reader', function=None, python_name='napari_deeplabcut._reader:get_hdf_reader'), 'n
apari-deeplabcut.get_image_reader': CommandHandler(id='napari-deeplabcut.get_image_reader', fun
ction=None, python_name='napari_deeplabcut._reader:get_image_reader'), 'napari-deeplabcut.get_v
ideo_reader': CommandHandler(id='napari-deeplabcut.get_video_reader', function=None, python_nam
e='napari_deeplabcut._reader:get_video_reader'), 'napari-deeplabcut.get_folder_parser': Command
Handler(id='napari-deeplabcut.get_folder_parser', function=None, python_name='napari_deeplabcut
._reader:get_folder_parser'), 'napari-deeplabcut.get_config_reader': CommandHandler(id='napari-
deeplabcut.get_config_reader', function=None, python_name='napari_deeplabcut._reader:get_config
_reader'), 'napari-deeplabcut.write_hdf': CommandHandler(id='napari-deeplabcut.write_hdf', func
tion=None, python_name='napari_deeplabcut._writer:write_hdf'), 'napari-deeplabcut.write_masks':
 CommandHandler(id='napari-deeplabcut.write_masks', function=None, python_name='napari_deeplabc
ut._writer:write_masks'), 'napari-deeplabcut.make_keypoint_controls': CommandHandler(id='napari
-deeplabcut.make_keypoint_controls', function=None, python_name='napari_deeplabcut._widgets:Key
pointControls')}
        self = <npe2._command_registry.CommandRegistry object at 0x000002360C7C83D0>
        self._commands[id] = CommandHandler(id='napari-deeplabcut.make_keypoint_controls', func
tion=None, python_name='napari_deeplabcut._widgets:KeypointControls')

File ~\anaconda3\Lib\site-packages\npe2\_command_registry.py:34, in CommandHandler.resolve(self
=CommandHandler(id='napari-deeplabcut.make_keypoi...me='napari_deeplabcut._widgets:KeypointCont
rols'))
     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
stowers1195 commented 3 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'

jeylau commented 3 months ago

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.

ashthemagnificent commented 2 months ago

Hey, I tried uninstalling pyqt5 and installing pyside6==6.4.2, when i launched napari and tried to plug-in keypoint control it gave me this:

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 :1030, in _gcd_import(name='napari_deeplabcut._widgets', package=None, level=0)

File :1007, in _find_and_load(name='napari_deeplabcut.widgets', import=)

File :986, in _find_and_load_unlocked(name='napari_deeplabcut.widgets', import=)

File :680, in _load_unlocked(spec=ModuleSpec(name='napari_deeplabcut._widgets', lo...\site-packages\napari_deeplabcut\_widgets.py'))

File :850, in exec_module(self=<_frozen_importlib_external.SourceFileLoader object>, module=<module 'napari_deeplabcut._widgets' from 'C:\U...\site-packages\napari_deeplabcut\_widgets.py'>)

File :228, in _call_with_frames_removed(f=, *args=(<code object at 0x0000021A021E0920, fil...-packages\napari_deeplabcut_widgets.py", line 1>, {'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'>, ...}), **kwds={})

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': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': <class 'bool'>, 'memoryview': <class 'memoryview'>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'classmethod': <class 'classmethod'>, 'complex': <class 'complex'>, 'dict': <class 'dict'>, 'enumerate': <class 'enumerate'>, 'filter': <class 'filter'>, 'float': <class 'float'>, 'frozenset': <class 'frozenset'>, 'property': <class 'property'>, 'int': <class 'int'>, 'list': <class 'list'>, 'map': <class 'map'>, 'object': <class 'object'>, 'range': <class 'range'>, 'reversed': <class 'reversed'>, 'set': <class 'set'>, 'slice': <class 'slice'>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'zip': <class 'zip'>, 'debug': True, 'BaseException': <class 'BaseException'>, 'Exception': <class 'Exception'>, 'TypeError': <class 'TypeError'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'GeneratorExit': <class 'GeneratorExit'>, 'SystemExit': <class 'SystemExit'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'ImportError': <class 'ImportError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'OSError': <class 'OSError'>, 'EnvironmentError': <class 'OSError'>, 'IOError': <class 'OSError'>, 'WindowsError': <class 'OSError'>, 'EOFError': <class 'EOFError'>, 'RuntimeError': <class 'RuntimeError'>, 'RecursionError': <class 'RecursionError'>, 'NotImplementedError': <class 'NotImplementedError'>, 'NameError': <class 'NameError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'AttributeError': <class 'AttributeError'>, 'SyntaxError': <class 'SyntaxError'>, 'IndentationError': <class 'IndentationError'>, 'TabError': <class 'TabError'>, 'LookupError': <class 'LookupError'>, 'IndexError': <class 'IndexError'>, 'KeyError': <class 'KeyError'>, 'ValueError': <class 'ValueError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'AssertionError': <class 'AssertionError'>, 'ArithmeticError': <class 'ArithmeticError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'OverflowError': <class 'OverflowError'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, 'SystemError': <class 'SystemError'>, 'ReferenceError': <class 'ReferenceError'>, 'MemoryError': <class 'MemoryError'>, 'BufferError': <class 'BufferError'>, 'Warning': <class 'Warning'>, 'UserWarning': <class 'UserWarning'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'FutureWarning': <class 'FutureWarning'>, 'ImportWarning': <class 'ImportWarning'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'BytesWarning': <class 'BytesWarning'>, 'ResourceWarning': <class 'ResourceWarning'>, 'ConnectionError': <class 'ConnectionError'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'NotADirectoryError': <class 'NotADirectoryError'>, 'InterruptedError': <class 'InterruptedError'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'TimeoutError': <class 'TimeoutError'>, 'open': , 'quit': Use quit() or Ctrl-Z plus Return to exit, 'exit': Use exit() or Ctrl-Z plus Return to exit, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.

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': , 'qApp': <PySide2.QtWidgets.QApplication(0x21a70577220) at 0x0000021A719781E0>}, 'logging': <module 'logging' from 'C:\Users\AshPC\anaconda3\envs\DEEPLABCUT\lib\logging\init.py'>, 'os': <module 'os' from 'C:\Users\AshPC\anaconda3\envs\DEEPLABCUT\lib\os.py'>, 'defaultdict': <class 'collections.defaultdict'>, 'namedtuple': <function namedtuple at 0x0000021A65C9E4C0>, 'deepcopy': <function deepcopy at 0x0000021A66381310>, 'datetime': <class 'datetime.datetime'>, 'partial': <class 'functools.partial'>, 'cached_property': <class 'functools.cached_property'>, 'ceil': , 'log10': , 'plt': <module 'matplotlib.pyplot' from 'C:\Users\AshPC\anaconda3\envs\DEEPLABCUT\lib\site-packages\matplotlib\pyplot.py'>, 'mplstyle': <module 'matplotlib.style' from 'C:\Users\AshPC\anaconda3\envs\DEEPLABCUT\lib\site-packages\matplotlib\style\init.py'>, 'napari': <module 'napari' from 'C:\Users\AshPC\AppData\Roaming\Python\Python39\site-packages\napari\init.py'>, 'pd': <module 'pandas' from 'C:\Users\AshPC\anaconda3\envs\DEEPLABCUT\lib\site-packages\pandas\init.py'>, 'Path': <class 'pathlib.Path'>, 'MethodType': <class 'method'>, 'Optional': typing.Optional, 'Sequence': typing.Sequence, 'Union': typing.Union, 'FigureCanvas': <class 'matplotlib.backends.backend_qtagg.FigureCanvasQTAgg'>, 'NavigationToolbar2QT': <class 'matplotlib.backends.backend_qt.NavigationToolbar2QT'>, 'np': <module 'numpy' from 'C:\Users\AshPC\anaconda3\envs\DEEPLABCUT\lib\site-packages\numpy\init.py'>, 'QtWelcomeLabel': <class 'napari._qt.widgets.qt_welcome.QtWelcomeLabel'>, 'Image': <class 'napari.layers.image.image.Image'>, 'Points': <class 'napari.layers.points.points.Points'>, 'Shapes': <class 'napari.layers.shapes.shapes.Shapes'>, 'Tracks': <class 'napari.layers.tracks.tracks.Tracks'>, 'register_points_action': <function register_points_action at 0x0000021A6F371DC0>, 'color_manager': <module 'napari.layers.utils.color_manager' from 'C:\Users\AshPC\AppData\Roaming\Python\Python39\site-packages\napari\layers\utils\color_manager.py'>, '_features_to_properties': <function _features_to_properties at 0x0000021A6EA0DB80>, 'Event': <class 'napari.utils.events.event.Event'>, 'get_save_history': <function get_save_history at 0x0000021A7150BF70>, 'update_save_history': <function update_save_history at 0x0000021A7150BE50>, 'Qt': <class 'PySide2.QtCore.Qt'>, 'QTimer': <class 'PySide2.QtCore.QTimer'>, 'Signal': <class 'PySide2.QtCore.Signal'>, 'QPoint': <class 'PySide2.QtCore.QPoint'>, 'QSettings': <class 'PySide2.QtCore.QSettings'>, 'QSize': <class 'PySide2.QtCore.QSize'>, 'QPainter': <class 'PySide2.QtGui.QPainter'>, 'QAction': <class 'PySide2.QtWidgets.QAction'>, 'QCursor': <class 'PySide2.QtGui.QCursor'>, 'QIcon': <class 'PySide2.QtGui.QIcon'>}, {'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': , 'all': , 'any': , 'ascii': , 'bin': , 'breakpoint': , 'callable': , 'chr': , 'compile': , 'delattr': , 'dir': , 'divmod': , 'eval': , 'exec': , 'format': , 'getattr': , 'globals': , 'hasattr': , 'hash': , 'hex': , 'id': , 'input': , 'isinstance': , 'issubclass': , 'iter': , 'len': , 'locals': , 'max': , 'min': , 'next': , 'oct': , 'ord': , 'pow': , 'print': , 'repr': , 'round': , 'setattr': , 'sorted': , 'sum': , 'vars': , 'None': None, 'Ellipsis': Ellipsis, 'NotImplemented': NotImplemented, 'False': False, 'True': True, 'bool': <class 'bool'>, 'memoryview': <class 'memoryview'>, 'bytearray': <class 'bytearray'>, 'bytes': <class 'bytes'>, 'classmethod': <class 'classmethod'>, 'complex': <class 'complex'>, 'dict': <class 'dict'>, 'enumerate': <class 'enumerate'>, 'filter': <class 'filter'>, 'float': <class 'float'>, 'frozenset': <class 'frozenset'>, 'property': <class 'property'>, 'int': <class 'int'>, 'list': <class 'list'>, 'map': <class 'map'>, 'object': <class 'object'>, 'range': <class 'range'>, 'reversed': <class 'reversed'>, 'set': <class 'set'>, 'slice': <class 'slice'>, 'staticmethod': <class 'staticmethod'>, 'str': <class 'str'>, 'super': <class 'super'>, 'tuple': <class 'tuple'>, 'type': <class 'type'>, 'zip': <class 'zip'>, 'debug': True, 'BaseException': <class 'BaseException'>, 'Exception': <class 'Exception'>, 'TypeError': <class 'TypeError'>, 'StopAsyncIteration': <class 'StopAsyncIteration'>, 'StopIteration': <class 'StopIteration'>, 'GeneratorExit': <class 'GeneratorExit'>, 'SystemExit': <class 'SystemExit'>, 'KeyboardInterrupt': <class 'KeyboardInterrupt'>, 'ImportError': <class 'ImportError'>, 'ModuleNotFoundError': <class 'ModuleNotFoundError'>, 'OSError': <class 'OSError'>, 'EnvironmentError': <class 'OSError'>, 'IOError': <class 'OSError'>, 'WindowsError': <class 'OSError'>, 'EOFError': <class 'EOFError'>, 'RuntimeError': <class 'RuntimeError'>, 'RecursionError': <class 'RecursionError'>, 'NotImplementedError': <class 'NotImplementedError'>, 'NameError': <class 'NameError'>, 'UnboundLocalError': <class 'UnboundLocalError'>, 'AttributeError': <class 'AttributeError'>, 'SyntaxError': <class 'SyntaxError'>, 'IndentationError': <class 'IndentationError'>, 'TabError': <class 'TabError'>, 'LookupError': <class 'LookupError'>, 'IndexError': <class 'IndexError'>, 'KeyError': <class 'KeyError'>, 'ValueError': <class 'ValueError'>, 'UnicodeError': <class 'UnicodeError'>, 'UnicodeEncodeError': <class 'UnicodeEncodeError'>, 'UnicodeDecodeError': <class 'UnicodeDecodeError'>, 'UnicodeTranslateError': <class 'UnicodeTranslateError'>, 'AssertionError': <class 'AssertionError'>, 'ArithmeticError': <class 'ArithmeticError'>, 'FloatingPointError': <class 'FloatingPointError'>, 'OverflowError': <class 'OverflowError'>, 'ZeroDivisionError': <class 'ZeroDivisionError'>, 'SystemError': <class 'SystemError'>, 'ReferenceError': <class 'ReferenceError'>, 'MemoryError': <class 'MemoryError'>, 'BufferError': <class 'BufferError'>, 'Warning': <class 'Warning'>, 'UserWarning': <class 'UserWarning'>, 'DeprecationWarning': <class 'DeprecationWarning'>, 'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>, 'SyntaxWarning': <class 'SyntaxWarning'>, 'RuntimeWarning': <class 'RuntimeWarning'>, 'FutureWarning': <class 'FutureWarning'>, 'ImportWarning': <class 'ImportWarning'>, 'UnicodeWarning': <class 'UnicodeWarning'>, 'BytesWarning': <class 'BytesWarning'>, 'ResourceWarning': <class 'ResourceWarning'>, 'ConnectionError': <class 'ConnectionError'>, 'BlockingIOError': <class 'BlockingIOError'>, 'BrokenPipeError': <class 'BrokenPipeError'>, 'ChildProcessError': <class 'ChildProcessError'>, 'ConnectionAbortedError': <class 'ConnectionAbortedError'>, 'ConnectionRefusedError': <class 'ConnectionRefusedError'>, 'ConnectionResetError': <class 'ConnectionResetError'>, 'FileExistsError': <class 'FileExistsError'>, 'FileNotFoundError': <class 'FileNotFoundError'>, 'IsADirectoryError': <class 'IsADirectoryError'>, 'NotADirectoryError': <class 'NotADirectoryError'>, 'InterruptedError': <class 'InterruptedError'>, 'PermissionError': <class 'PermissionError'>, 'ProcessLookupError': <class 'ProcessLookupError'>, 'TimeoutError': <class 'TimeoutError'>, 'open': , 'quit': Use quit() or Ctrl-Z plus Return to exit, 'exit': Use exit() or Ctrl-Z plus Return to exit, 'copyright': Copyright (c) 2001-2023 Python Software Foundation. All Rights Reserved.

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': , 'qApp': <PySide2.QtWidgets.QApplication(0x21a70577220) at 0x0000021A719781E0>}, 'logging': <module 'logging' from 'C:\Users\AshPC\anaconda3\envs\DEEPLABCUT\lib\logging\init.py'>, 'os': <module 'os' from 'C:\Users\AshPC\anaconda3\envs\DEEPLABCUT\lib\os.py'>, 'defaultdict': <class 'collections.defaultdict'>, 'namedtuple': <function namedtuple at 0x0000021A65C9E4C0>, 'deepcopy': <function deepcopy at 0x0000021A66381310>, 'datetime': <class 'datetime.datetime'>, 'partial': <class 'functools.partial'>, 'cached_property': <class 'functools.cached_property'>, 'ceil': , 'log10': , 'plt': <module 'matplotlib.pyplot' from 'C:\Users\AshPC\anaconda3\envs\DEEPLABCUT\lib\site-packages\matplotlib\pyplot.py'>, 'mplstyle': <module 'matplotlib.style' from 'C:\Users\AshPC\anaconda3\envs\DEEPLABCUT\lib\site-packages\matplotlib\style\init.py'>, 'napari': <module 'napari' from 'C:\Users\AshPC\AppData\Roaming\Python\Python39\site-packages\napari\init.py'>, 'pd': <module 'pandas' from 'C:\Users\AshPC\anaconda3\envs\DEEPLABCUT\lib\site-packages\pandas\init.py'>, 'Path': <class 'pathlib.Path'>, 'MethodType': <class 'method'>, 'Optional': typing.Optional, 'Sequence': typing.Sequence, 'Union': typing.Union, 'FigureCanvas': <class 'matplotlib.backends.backend_qtagg.FigureCanvasQTAgg'>, 'NavigationToolbar2QT': <class 'matplotlib.backends.backend_qt.NavigationToolbar2QT'>, 'np': <module 'numpy' from 'C:\Users\AshPC\anaconda3\envs\DEEPLABCUT\lib\site-packages\numpy\init.py'>, 'QtWelcomeLabel': <class 'napari._qt.widgets.qt_welcome.QtWelcomeLabel'>, 'Image': <class 'napari.layers.image.image.Image'>, 'Points': <class 'napari.layers.points.points.Points'>, 'Shapes': <class 'napari.layers.shapes.shapes.Shapes'>, 'Tracks': <class 'napari.layers.tracks.tracks.Tracks'>, 'register_points_action': <function register_points_action at 0x0000021A6F371DC0>, 'color_manager': <module 'napari.layers.utils.color_manager' from 'C:\Users\AshPC\AppData\Roaming\Python\Python39\site-packages\napari\layers\utils\color_manager.py'>, '_features_to_properties': <function _features_to_properties at 0x0000021A6EA0DB80>, 'Event': <class 'napari.utils.events.event.Event'>, 'get_save_history': <function get_save_history at 0x0000021A7150BF70>, 'update_save_history': <function update_save_history at 0x0000021A7150BE50>, 'Qt': <class 'PySide2.QtCore.Qt'>, 'QTimer': <class 'PySide2.QtCore.QTimer'>, 'Signal': <class 'PySide2.QtCore.Signal'>, 'QPoint': <class 'PySide2.QtCore.QPoint'>, 'QSettings': <class 'PySide2.QtCore.QSettings'>, 'QSize': <class 'PySide2.QtCore.QSize'>, 'QPainter': <class 'PySide2.QtGui.QPainter'>, 'QAction': <class 'PySide2.QtWidgets.QAction'>, 'QCursor': <class 'PySide2.QtGui.QCursor'>, 'QIcon': <class 'PySide2.QtGui.QIcon'>}, ('QSvgWidget',), 0) kwargs = {}

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.._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 0x0000021A7222AFD0> self = <napari._qt.menus.plugins_menu.PluginsMenu(0x21a70d6fdf0) at 0x0000021A7B819580> 106 else: 107 self._win._add_plugin_function_widget(key)

File ~\AppData\Roaming\Python\Python39\site-packages\napari_qt\qt_main_window.py:790, in Window.add_plugin_dock_widget(self=, plugin_name='napari-deeplabcut', widget_name='Keypoint controls', tabify=False) 787 Widget = None 788 dock_kwargs = {} --> 790 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\AshPC\AppData\Roaming\Python\Python39\site-packages\napari\plugins\_npe2.py'> 791 Widget, widget_name = result 793 if Widget is None:

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=) 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 0x0000021A6EF2A430> self.command = 'napari-deeplabcut.make_keypoint_controls' self = WidgetContribution(command='napari-deeplabcut.make_keypoint_controls', display_name='Keypoint controls', autogenerate=False)

File ~\AppData\Roaming\Python\Python39\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=None, python_name='napari_deeplabcut._reader:get_image_reader'), 'napari-deeplabcut.get_video_reader': CommandHandler(id='napari-deeplabcut.get_video_reader', function=None, python_name='napari_deeplabcut._reader:get_video_reader'), 'napari-deeplabcut.get_folder_parser': CommandHandler(id='napari-deeplabcut.get_folder_parser', function=None, python_name='napari_deeplabcut._reader:get_folder_parser'), 'napari-deeplabcut.get_config_reader': CommandHandler(id='napari-deeplabcut.get_config_reader', function=None, 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 0x0000021A6EF2A430> self._commands[id] = CommandHandler(id='napari-deeplabcut.make_keypoint_controls', function=None, python_name='napari_deeplabcut._widgets:KeypointControls')

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

MMathisLab commented 2 months ago

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! 😀

ashthemagnificent commented 2 months ago

I made a new environment for the napari and now it works! thank you so much for the answer! ^^

MMathisLab commented 2 months ago

YAY! very glad to hear that 👯