napari-aicsimageio
napari-aicsimageio copied to clipboard
aics-imageio fails to open .tif files
Hi, thank you so much for providing this great reader plugin for napari. It has helped me a lot!
However, in the recent version, when I try to open .tif files, I get the following error message in napari:
ValueError: Plugin 'aicsimageio-in-memory' was selected to open ['Z:/Till/188_viventis_data/downscaled_mCherry.tif'], but returned no data.
full error traceback
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\_qt\qt_viewer.py:748, in QtViewer._open_files_dialog(self=, choose_plugin=False) 747 for filename in filenames: --> 748 self._qt_open( self = filename = 'Z:/Till/188_viventis_data/downscaled_mCherry-1.tif' [filename] = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] choose_plugin = False 749 [filename], stack=False, choose_plugin=choose_plugin 750 ) 751 update_open_history(filenames[0]) File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari_qt\qt_viewer.py:848, in QtViewer._qt_open(self=<napari._qt.qt_viewer.QtViewer object>, filenames=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, choose_plugin=False, plugin=None, layer_type=None, **kwargs={}) 847 except MultipleReaderError: --> 848 handle_gui_reading(filenames, self, stack, **kwargs) filenames = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] self = <napari._qt.qt_viewer.QtViewer object at 0x000001CA466F3490> stack = False kwargs = {}
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari_qt\dialogs\qt_reader_dialog.py:199, in handle_gui_reading(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], qt_viewer=<napari._qt.qt_viewer.QtViewer object>, stack=False, plugin_name=None, error=None, plugin_override=False, **kwargs={}) 198 if display_name: --> 199 open_with_dialog_choices( display_name = 'aicsimageio-in-memory' persist = False readerDialog = <napari._qt.dialogs.qt_reader_dialog.QtReaderDialog object at 0x000001CA55805900> readerDialog._extension = '.tif' readers = {'aicsimageio-in-memory': 'aicsimageio-in-memory', 'aicsimageio-out-of-memory': 'aicsimageio-out-of-memory', 'napari': 'napari builtins'} paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] stack = False qt_viewer = <napari._qt.qt_viewer.QtViewer object at 0x000001CA466F3490> kwargs = {} 200 display_name, 201 persist, 202 readerDialog._extension, 203 readers, 204 paths, 205 stack, 206 qt_viewer, 207 **kwargs, 208 )
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari_qt\dialogs\qt_reader_dialog.py:292, in open_with_dialog_choices(display_name='aicsimageio-in-memory', persist=False, extension='.tif', readers={'aicsimageio-in-memory': 'aicsimageio-in-memory', 'aicsimageio-out-of-memory': 'aicsimageio-out-of-memory', 'napari': 'napari builtins'}, paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, qt_viewer=<napari._qt.qt_viewer.QtViewer object>, **kwargs={}) 291 # may throw error, but we let it this time --> 292 qt_viewer.viewer.open(paths, stack=stack, plugin=plugin_name, **kwargs) plugin_name = 'aicsimageio-in-memory' paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] qt_viewer.viewer = Viewer(axes=Axes(visible=False, labels=True, colored=True, dashed=False, arrows=True), camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, interactive=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], scale_bar=ScaleBar(visible=False, colored=False, color=<class 'numpy.ndarray'> (4,) float32, ticks=True, position=<Position.BOTTOM_RIGHT: 'bottom_right'>, font_size=10.0, box=False, box_color=<class 'numpy.ndarray'> (4,) float32, unit=None), text_overlay=TextOverlay(visible=False, color=<class 'numpy.ndarray'> (4,) float32, font_size=10.0, position=<TextOverlayPosition.TOP_LEFT: 'top_left'>, text=''), overlays=Overlays(interaction_box=InteractionBox(points=None, show=False, show_handle=False, show_vertices=False, selection_box_drag=None, selection_box_final=None, transform_start=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4EE0>, transform_drag=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4F40>, transform_final=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4FA0>, transform=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA5000>, allow_new_selection=True, selected_vertex=None)), help='', status='Ready', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events.
.mouse_move at 0x000001CA51722680>], mouse_drag_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events. .mouse_drag at 0x000001CA51722950>], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x000001CA4560EEF0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'Shift': <function InteractionBoxMouseBindings.initialize_key_events. .hold_to_lock_aspect_ratio at 0x000001CA517227A0>, 'Control-Shift-R': <function InteractionBoxMouseBindings._reset_active_layer_affine at 0x000001CA520F40D0>, 'Control-Shift-A': <function InteractionBoxMouseBindings._transform_active_layer at 0x000001CA520F4C10>}) stack = False kwargs = {} qt_viewer = <napari._qt.qt_viewer.QtViewer object at 0x000001CA466F3490> 294 if persist: File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\components\viewer_model.py:1014, in ViewerModel.open(self=Viewer(axes=Axes(visible=False, labels=True, col...._transform_active_layer at 0x000001CA520F4C10>}), path=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, plugin='aicsimageio-in-memory', layer_type=None, **kwargs={}) 1012 if plugin: 1013 added.extend( -> 1014 self._add_layers_with_plugins( added = [] self = Viewer(axes=Axes(visible=False, labels=True, colored=True, dashed=False, arrows=True), camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, interactive=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], scale_bar=ScaleBar(visible=False, colored=False, color=<class 'numpy.ndarray'> (4,) float32, ticks=True, position=<Position.BOTTOM_RIGHT: 'bottom_right'>, font_size=10.0, box=False, box_color=<class 'numpy.ndarray'> (4,) float32, unit=None), text_overlay=TextOverlay(visible=False, color=<class 'numpy.ndarray'> (4,) float32, font_size=10.0, position=<TextOverlayPosition.TOP_LEFT: 'top_left'>, text=''), overlays=Overlays(interaction_box=InteractionBox(points=None, show=False, show_handle=False, show_vertices=False, selection_box_drag=None, selection_box_final=None, transform_start=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4EE0>, transform_drag=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4F40>, transform_final=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4FA0>, transform=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA5000>, allow_new_selection=True, selected_vertex=None)), help='', status='Ready', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events.
.mouse_move at 0x000001CA51722680>], mouse_drag_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events. .mouse_drag at 0x000001CA51722950>], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x000001CA4560EEF0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'Shift': <function InteractionBoxMouseBindings.initialize_key_events. .hold_to_lock_aspect_ratio at 0x000001CA517227A0>, 'Control-Shift-R': <function InteractionBoxMouseBindings._reset_active_layer_affine at 0x000001CA520F40D0>, 'Control-Shift-A': <function InteractionBoxMouseBindings._transform_active_layer at 0x000001CA520F4C10>}) _path = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] kwargs = {} plugin = 'aicsimageio-in-memory' layer_type = None _stack = False 1015 _path, 1016 kwargs=kwargs, 1017 plugin=plugin, 1018 layer_type=layer_type, 1019 stack=_stack, 1020 ) 1021 ) 1022 # no plugin choice was made 1023 else: File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\components\viewer_model.py:1216, in ViewerModel._add_layers_with_plugins(self=Viewer(axes=Axes(visible=False, labels=True, col...._transform_active_layer at 0x000001CA520F4C10>}), paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, kwargs={}, plugin='aicsimageio-in-memory', layer_type=None) 1215 assert len(paths) == 1 -> 1216 layer_data, hookimpl = read_data_with_plugins( paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] stack = False plugin = 'aicsimageio-in-memory' 1217 paths, plugin=plugin, stack=stack 1218 ) 1220 # glean layer names from filename. These will be used as fallback 1221 # names, if the plugin does not return a name kwarg in their meta dict.
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\plugins\io.py:77, in read_data_with_plugins(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], plugin='aicsimageio-in-memory', stack=False) 75 hookimpl: Optional[HookImplementation] ---> 77 res = _npe2.read(paths, plugin, stack=stack) paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] plugin = 'aicsimageio-in-memory' stack = False _npe2 = <module 'napari.plugins._npe2' from 'C:\Users\Till\mambaforge\envs\vanilla-napari\lib\site-packages\napari\plugins\_npe2.py'> 78 if res is not None:
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\plugins_npe2.py:61, in read(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], plugin='aicsimageio-in-memory', stack=False) 60 if 'No readers returned data' not in str(e): ---> 61 raise e from e 62 return None
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\plugins_npe2.py:55, in read(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], plugin='aicsimageio-in-memory', stack=False) 54 try: ---> 55 layer_data, reader = io_utils.read_get_reader( io_utils = <module 'npe2.io_utils' from 'C:\Users\Till\mambaforge\envs\vanilla-napari\lib\site-packages\npe2\io_utils.py'> npe1_path = 'Z:/Till/188_viventis_data/downscaled_mCherry-1.tif' plugin = 'aicsimageio-in-memory' 56 npe1_path, plugin_name=plugin 57 ) 58 return layer_data, _FakeHookimpl(reader.plugin_name)
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\npe2\io_utils.py:66, in read_get_reader(path='Z:/Till/188_viventis_data/downscaled_mCherry-1.tif', plugin_name='aicsimageio-in-memory', stack=None) 65 new_path, new_stack = v1_to_v2(path) ---> 66 return _read( new_path = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] new_stack = False plugin_name = 'aicsimageio-in-memory' 67 new_path, plugin_name=plugin_name, return_reader=True, stack=new_stack 68 ) 69 else:
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\npe2\io_utils.py:169, in _read(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, plugin_name='aicsimageio-in-memory', return_reader=True, _pm=<npe2._plugin_manager.PluginManager object>) 168 if plugin_name: --> 169 raise ValueError( plugin_name = 'aicsimageio-in-memory' paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] 170 f"Plugin {plugin_name!r} was selected to open " 171 + f"{paths!r}, but returned no data." 172 ) 173 raise ValueError(f"No readers returned data for {paths!r}")
ValueError: Plugin 'aicsimageio-in-memory' was selected to open ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], but returned no data.
The above exception was the direct cause of the following exception:
ValueError Traceback (most recent call last) File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari_qt\qt_viewer.py:748, in QtViewer._open_files_dialog(self=<napari._qt.qt_viewer.QtViewer object>, choose_plugin=False) 747 for filename in filenames: --> 748 self._qt_open( self = <napari._qt.qt_viewer.QtViewer object at 0x000001CA466F3490> filename = 'Z:/Till/188_viventis_data/downscaled_mCherry-1.tif' [filename] = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] choose_plugin = False 749 [filename], stack=False, choose_plugin=choose_plugin 750 ) 751 update_open_history(filenames[0])
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari_qt\qt_viewer.py:848, in QtViewer._qt_open(self=<napari._qt.qt_viewer.QtViewer object>, filenames=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, choose_plugin=False, plugin=None, layer_type=None, **kwargs={}) 847 except MultipleReaderError: --> 848 handle_gui_reading(filenames, self, stack, **kwargs) filenames = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] self = <napari._qt.qt_viewer.QtViewer object at 0x000001CA466F3490> stack = False kwargs = {}
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari_qt\dialogs\qt_reader_dialog.py:199, in handle_gui_reading(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], qt_viewer=<napari._qt.qt_viewer.QtViewer object>, stack=False, plugin_name=None, error=None, plugin_override=False, **kwargs={}) 198 if display_name: --> 199 open_with_dialog_choices( display_name = 'aicsimageio-in-memory' persist = False readerDialog = <napari._qt.dialogs.qt_reader_dialog.QtReaderDialog object at 0x000001CA55805900> readerDialog._extension = '.tif' readers = {'aicsimageio-in-memory': 'aicsimageio-in-memory', 'aicsimageio-out-of-memory': 'aicsimageio-out-of-memory', 'napari': 'napari builtins'} paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] stack = False qt_viewer = <napari._qt.qt_viewer.QtViewer object at 0x000001CA466F3490> kwargs = {} 200 display_name, 201 persist, 202 readerDialog._extension, 203 readers, 204 paths, 205 stack, 206 qt_viewer, 207 **kwargs, 208 )
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari_qt\dialogs\qt_reader_dialog.py:292, in open_with_dialog_choices(display_name='aicsimageio-in-memory', persist=False, extension='.tif', readers={'aicsimageio-in-memory': 'aicsimageio-in-memory', 'aicsimageio-out-of-memory': 'aicsimageio-out-of-memory', 'napari': 'napari builtins'}, paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, qt_viewer=<napari._qt.qt_viewer.QtViewer object>, **kwargs={}) 291 # may throw error, but we let it this time --> 292 qt_viewer.viewer.open(paths, stack=stack, plugin=plugin_name, **kwargs) plugin_name = 'aicsimageio-in-memory' paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] qt_viewer.viewer = Viewer(axes=Axes(visible=False, labels=True, colored=True, dashed=False, arrows=True), camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, interactive=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], scale_bar=ScaleBar(visible=False, colored=False, color=<class 'numpy.ndarray'> (4,) float32, ticks=True, position=<Position.BOTTOM_RIGHT: 'bottom_right'>, font_size=10.0, box=False, box_color=<class 'numpy.ndarray'> (4,) float32, unit=None), text_overlay=TextOverlay(visible=False, color=<class 'numpy.ndarray'> (4,) float32, font_size=10.0, position=<TextOverlayPosition.TOP_LEFT: 'top_left'>, text=''), overlays=Overlays(interaction_box=InteractionBox(points=None, show=False, show_handle=False, show_vertices=False, selection_box_drag=None, selection_box_final=None, transform_start=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4EE0>, transform_drag=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4F40>, transform_final=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4FA0>, transform=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA5000>, allow_new_selection=True, selected_vertex=None)), help='', status='Ready', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events.
.mouse_move at 0x000001CA51722680>], mouse_drag_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events. .mouse_drag at 0x000001CA51722950>], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x000001CA4560EEF0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'Shift': <function InteractionBoxMouseBindings.initialize_key_events. .hold_to_lock_aspect_ratio at 0x000001CA517227A0>, 'Control-Shift-R': <function InteractionBoxMouseBindings._reset_active_layer_affine at 0x000001CA520F40D0>, 'Control-Shift-A': <function InteractionBoxMouseBindings._transform_active_layer at 0x000001CA520F4C10>}) stack = False kwargs = {} qt_viewer = <napari._qt.qt_viewer.QtViewer object at 0x000001CA466F3490> 294 if persist: File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\components\viewer_model.py:1014, in ViewerModel.open(self=Viewer(axes=Axes(visible=False, labels=True, col...._transform_active_layer at 0x000001CA520F4C10>}), path=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, plugin='aicsimageio-in-memory', layer_type=None, **kwargs={}) 1012 if plugin: 1013 added.extend( -> 1014 self._add_layers_with_plugins( added = [] self = Viewer(axes=Axes(visible=False, labels=True, colored=True, dashed=False, arrows=True), camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, interactive=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], scale_bar=ScaleBar(visible=False, colored=False, color=<class 'numpy.ndarray'> (4,) float32, ticks=True, position=<Position.BOTTOM_RIGHT: 'bottom_right'>, font_size=10.0, box=False, box_color=<class 'numpy.ndarray'> (4,) float32, unit=None), text_overlay=TextOverlay(visible=False, color=<class 'numpy.ndarray'> (4,) float32, font_size=10.0, position=<TextOverlayPosition.TOP_LEFT: 'top_left'>, text=''), overlays=Overlays(interaction_box=InteractionBox(points=None, show=False, show_handle=False, show_vertices=False, selection_box_drag=None, selection_box_final=None, transform_start=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4EE0>, transform_drag=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4F40>, transform_final=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4FA0>, transform=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA5000>, allow_new_selection=True, selected_vertex=None)), help='', status='Ready', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events.
.mouse_move at 0x000001CA51722680>], mouse_drag_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events. .mouse_drag at 0x000001CA51722950>], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x000001CA4560EEF0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'Shift': <function InteractionBoxMouseBindings.initialize_key_events. .hold_to_lock_aspect_ratio at 0x000001CA517227A0>, 'Control-Shift-R': <function InteractionBoxMouseBindings._reset_active_layer_affine at 0x000001CA520F40D0>, 'Control-Shift-A': <function InteractionBoxMouseBindings._transform_active_layer at 0x000001CA520F4C10>}) _path = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] kwargs = {} plugin = 'aicsimageio-in-memory' layer_type = None _stack = False 1015 _path, 1016 kwargs=kwargs, 1017 plugin=plugin, 1018 layer_type=layer_type, 1019 stack=_stack, 1020 ) 1021 ) 1022 # no plugin choice was made 1023 else: File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\components\viewer_model.py:1216, in ViewerModel._add_layers_with_plugins(self=Viewer(axes=Axes(visible=False, labels=True, col...._transform_active_layer at 0x000001CA520F4C10>}), paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, kwargs={}, plugin='aicsimageio-in-memory', layer_type=None) 1215 assert len(paths) == 1 -> 1216 layer_data, hookimpl = read_data_with_plugins( paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] stack = False plugin = 'aicsimageio-in-memory' 1217 paths, plugin=plugin, stack=stack 1218 ) 1220 # glean layer names from filename. These will be used as fallback 1221 # names, if the plugin does not return a name kwarg in their meta dict.
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\plugins\io.py:77, in read_data_with_plugins(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], plugin='aicsimageio-in-memory', stack=False) 75 hookimpl: Optional[HookImplementation] ---> 77 res = _npe2.read(paths, plugin, stack=stack) paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] plugin = 'aicsimageio-in-memory' stack = False _npe2 = <module 'napari.plugins._npe2' from 'C:\Users\Till\mambaforge\envs\vanilla-napari\lib\site-packages\napari\plugins\_npe2.py'> 78 if res is not None:
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\plugins_npe2.py:61, in read(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], plugin='aicsimageio-in-memory', stack=False) 60 if 'No readers returned data' not in str(e): ---> 61 raise e from e 62 return None
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\plugins_npe2.py:55, in read(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], plugin='aicsimageio-in-memory', stack=False) 54 try: ---> 55 layer_data, reader = io_utils.read_get_reader( io_utils = <module 'npe2.io_utils' from 'C:\Users\Till\mambaforge\envs\vanilla-napari\lib\site-packages\npe2\io_utils.py'> npe1_path = 'Z:/Till/188_viventis_data/downscaled_mCherry-1.tif' plugin = 'aicsimageio-in-memory' 56 npe1_path, plugin_name=plugin 57 ) 58 return layer_data, _FakeHookimpl(reader.plugin_name)
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\npe2\io_utils.py:66, in read_get_reader(path='Z:/Till/188_viventis_data/downscaled_mCherry-1.tif', plugin_name='aicsimageio-in-memory', stack=None) 65 new_path, new_stack = v1_to_v2(path) ---> 66 return _read( new_path = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] new_stack = False plugin_name = 'aicsimageio-in-memory' 67 new_path, plugin_name=plugin_name, return_reader=True, stack=new_stack 68 ) 69 else:
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\npe2\io_utils.py:169, in _read(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, plugin_name='aicsimageio-in-memory', return_reader=True, _pm=<npe2._plugin_manager.PluginManager object>) 168 if plugin_name: --> 169 raise ValueError( plugin_name = 'aicsimageio-in-memory' paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] 170 f"Plugin {plugin_name!r} was selected to open " 171 + f"{paths!r}, but returned no data." 172 ) 173 raise ValueError(f"No readers returned data for {paths!r}")
ValueError: Plugin 'aicsimageio-in-memory' was selected to open ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], but returned no data.
The above exception was the direct cause of the following exception:
ValueError Traceback (most recent call last) File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari_qt\qt_viewer.py:748, in QtViewer._open_files_dialog(self=<napari._qt.qt_viewer.QtViewer object>, choose_plugin=False) 746 if (filenames != []) and (filenames is not None): 747 for filename in filenames: --> 748 self._qt_open( self = <napari._qt.qt_viewer.QtViewer object at 0x000001CA466F3490> filename = 'Z:/Till/188_viventis_data/downscaled_mCherry-1.tif' [filename] = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] choose_plugin = False 749 [filename], stack=False, choose_plugin=choose_plugin 750 ) 751 update_open_history(filenames[0])
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari_qt\qt_viewer.py:848, in QtViewer._qt_open(self=<napari._qt.qt_viewer.QtViewer object>, filenames=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, choose_plugin=False, plugin=None, layer_type=None, **kwargs={}) 838 handle_gui_reading( 839 filenames, 840 self, (...) 845 **kwargs, 846 ) 847 except MultipleReaderError: --> 848 handle_gui_reading(filenames, self, stack, **kwargs) filenames = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] self = <napari._qt.qt_viewer.QtViewer object at 0x000001CA466F3490> stack = False kwargs = {}
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari_qt\dialogs\qt_reader_dialog.py:199, in handle_gui_reading(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], qt_viewer=<napari._qt.qt_viewer.QtViewer object>, stack=False, plugin_name=None, error=None, plugin_override=False, **kwargs={}) 197 display_name, persist = readerDialog.get_user_choices() 198 if display_name: --> 199 open_with_dialog_choices( display_name = 'aicsimageio-in-memory' persist = False readerDialog = <napari._qt.dialogs.qt_reader_dialog.QtReaderDialog object at 0x000001CA55805900> readerDialog._extension = '.tif' readers = {'aicsimageio-in-memory': 'aicsimageio-in-memory', 'aicsimageio-out-of-memory': 'aicsimageio-out-of-memory', 'napari': 'napari builtins'} paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] stack = False qt_viewer = <napari._qt.qt_viewer.QtViewer object at 0x000001CA466F3490> kwargs = {} 200 display_name, 201 persist, 202 readerDialog._extension, 203 readers, 204 paths, 205 stack, 206 qt_viewer, 207 **kwargs, 208 )
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari_qt\dialogs\qt_reader_dialog.py:292, in open_with_dialog_choices(display_name='aicsimageio-in-memory', persist=False, extension='.tif', readers={'aicsimageio-in-memory': 'aicsimageio-in-memory', 'aicsimageio-out-of-memory': 'aicsimageio-out-of-memory', 'napari': 'napari builtins'}, paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, qt_viewer=<napari._qt.qt_viewer.QtViewer object>, **kwargs={}) 288 plugin_name = [ 289 p_name for p_name, d_name in readers.items() if d_name == display_name 290 ][0] 291 # may throw error, but we let it this time --> 292 qt_viewer.viewer.open(paths, stack=stack, plugin=plugin_name, **kwargs) plugin_name = 'aicsimageio-in-memory' paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] qt_viewer.viewer = Viewer(axes=Axes(visible=False, labels=True, colored=True, dashed=False, arrows=True), camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, interactive=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], scale_bar=ScaleBar(visible=False, colored=False, color=<class 'numpy.ndarray'> (4,) float32, ticks=True, position=<Position.BOTTOM_RIGHT: 'bottom_right'>, font_size=10.0, box=False, box_color=<class 'numpy.ndarray'> (4,) float32, unit=None), text_overlay=TextOverlay(visible=False, color=<class 'numpy.ndarray'> (4,) float32, font_size=10.0, position=<TextOverlayPosition.TOP_LEFT: 'top_left'>, text=''), overlays=Overlays(interaction_box=InteractionBox(points=None, show=False, show_handle=False, show_vertices=False, selection_box_drag=None, selection_box_final=None, transform_start=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4EE0>, transform_drag=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4F40>, transform_final=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4FA0>, transform=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA5000>, allow_new_selection=True, selected_vertex=None)), help='', status='Ready', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events.
.mouse_move at 0x000001CA51722680>], mouse_drag_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events. .mouse_drag at 0x000001CA51722950>], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x000001CA4560EEF0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'Shift': <function InteractionBoxMouseBindings.initialize_key_events. .hold_to_lock_aspect_ratio at 0x000001CA517227A0>, 'Control-Shift-R': <function InteractionBoxMouseBindings._reset_active_layer_affine at 0x000001CA520F40D0>, 'Control-Shift-A': <function InteractionBoxMouseBindings._transform_active_layer at 0x000001CA520F4C10>}) stack = False kwargs = {} qt_viewer = <napari._qt.qt_viewer.QtViewer object at 0x000001CA466F3490> 294 if persist: 295 if not extension.endswith(os.sep): File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\components\viewer_model.py:1014, in ViewerModel.open(self=Viewer(axes=Axes(visible=False, labels=True, col...._transform_active_layer at 0x000001CA520F4C10>}), path=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, plugin='aicsimageio-in-memory', layer_type=None, **kwargs={}) 1011 _path = [_path] if not isinstance(_path, list) else _path 1012 if plugin: 1013 added.extend( -> 1014 self._add_layers_with_plugins( added = [] self = Viewer(axes=Axes(visible=False, labels=True, colored=True, dashed=False, arrows=True), camera=Camera(center=(0.0, 0.0, 0.0), zoom=1.0, angles=(0.0, 0.0, 90.0), perspective=0.0, interactive=True), cursor=Cursor(position=(1.0, 1.0), scaled=True, size=1, style=<CursorStyle.STANDARD: 'standard'>), dims=Dims(ndim=2, ndisplay=2, last_used=0, range=((0, 2, 1), (0, 2, 1)), current_step=(0, 0), order=(0, 1), axis_labels=('0', '1')), grid=GridCanvas(stride=1, shape=(-1, -1), enabled=False), layers=[], scale_bar=ScaleBar(visible=False, colored=False, color=<class 'numpy.ndarray'> (4,) float32, ticks=True, position=<Position.BOTTOM_RIGHT: 'bottom_right'>, font_size=10.0, box=False, box_color=<class 'numpy.ndarray'> (4,) float32, unit=None), text_overlay=TextOverlay(visible=False, color=<class 'numpy.ndarray'> (4,) float32, font_size=10.0, position=<TextOverlayPosition.TOP_LEFT: 'top_left'>, text=''), overlays=Overlays(interaction_box=InteractionBox(points=None, show=False, show_handle=False, show_vertices=False, selection_box_drag=None, selection_box_final=None, transform_start=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4EE0>, transform_drag=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4F40>, transform_final=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA4FA0>, transform=<napari.utils.transforms.transforms.Affine object at 0x000001CA3FAA5000>, allow_new_selection=True, selected_vertex=None)), help='', status='Ready', tooltip=Tooltip(visible=False, text=''), theme='dark', title='napari', mouse_over_canvas=True, mouse_move_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events.
.mouse_move at 0x000001CA51722680>], mouse_drag_callbacks=[<function InteractionBoxMouseBindings.initialize_mouse_events. .mouse_drag at 0x000001CA51722950>], mouse_double_click_callbacks=[], mouse_wheel_callbacks=[<function dims_scroll at 0x000001CA4560EEF0>], _persisted_mouse_event={}, _mouse_drag_gen={}, _mouse_wheel_gen={}, keymap={'Shift': <function InteractionBoxMouseBindings.initialize_key_events. .hold_to_lock_aspect_ratio at 0x000001CA517227A0>, 'Control-Shift-R': <function InteractionBoxMouseBindings._reset_active_layer_affine at 0x000001CA520F40D0>, 'Control-Shift-A': <function InteractionBoxMouseBindings._transform_active_layer at 0x000001CA520F4C10>}) _path = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] kwargs = {} plugin = 'aicsimageio-in-memory' layer_type = None _stack = False 1015 _path, 1016 kwargs=kwargs, 1017 plugin=plugin, 1018 layer_type=layer_type, 1019 stack=_stack, 1020 ) 1021 ) 1022 # no plugin choice was made 1023 else: 1024 layers = self._open_or_raise_error( 1025 _path, kwargs, layer_type, _stack 1026 ) File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\components\viewer_model.py:1216, in ViewerModel._add_layers_with_plugins(self=Viewer(axes=Axes(visible=False, labels=True, col...._transform_active_layer at 0x000001CA520F4C10>}), paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, kwargs={}, plugin='aicsimageio-in-memory', layer_type=None) 1214 else: 1215 assert len(paths) == 1 -> 1216 layer_data, hookimpl = read_data_with_plugins( paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] stack = False plugin = 'aicsimageio-in-memory' 1217 paths, plugin=plugin, stack=stack 1218 ) 1220 # glean layer names from filename. These will be used as fallback 1221 # names, if the plugin does not return a name kwarg in their meta dict. 1222 filenames = []
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\plugins\io.py:77, in read_data_with_plugins(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], plugin='aicsimageio-in-memory', stack=False) 74 assert len(paths) == 1 75 hookimpl: Optional[HookImplementation] ---> 77 res = _npe2.read(paths, plugin, stack=stack) paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] plugin = 'aicsimageio-in-memory' stack = False _npe2 = <module 'napari.plugins._npe2' from 'C:\Users\Till\mambaforge\envs\vanilla-napari\lib\site-packages\napari\plugins\_npe2.py'> 78 if res is not None: 79 _ld, hookimpl = res
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\plugins_npe2.py:61, in read(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], plugin='aicsimageio-in-memory', stack=False) 59 except ValueError as e: 60 if 'No readers returned data' not in str(e): ---> 61 raise e from e 62 return None
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\napari\plugins_npe2.py:55, in read(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], plugin='aicsimageio-in-memory', stack=False) 53 npe1_path = paths[0] 54 try: ---> 55 layer_data, reader = io_utils.read_get_reader( io_utils = <module 'npe2.io_utils' from 'C:\Users\Till\mambaforge\envs\vanilla-napari\lib\site-packages\npe2\io_utils.py'> npe1_path = 'Z:/Till/188_viventis_data/downscaled_mCherry-1.tif' plugin = 'aicsimageio-in-memory' 56 npe1_path, plugin_name=plugin 57 ) 58 return layer_data, _FakeHookimpl(reader.plugin_name) 59 except ValueError as e:
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\npe2\io_utils.py:66, in read_get_reader(path='Z:/Till/188_viventis_data/downscaled_mCherry-1.tif', plugin_name='aicsimageio-in-memory', stack=None) 62 if stack is None: 63 # "npe1" old path 64 # Napari 0.4.15 and older, hopefully we can drop this and make stack mandatory 65 new_path, new_stack = v1_to_v2(path) ---> 66 return _read( new_path = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] new_stack = False plugin_name = 'aicsimageio-in-memory' 67 new_path, plugin_name=plugin_name, return_reader=True, stack=new_stack 68 ) 69 else: 70 assert isinstance(path, list)
File ~\mambaforge\envs\vanilla-napari\lib\site-packages\npe2\io_utils.py:169, in _read(paths=['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], stack=False, plugin_name='aicsimageio-in-memory', return_reader=True, _pm=<npe2._plugin_manager.PluginManager object>) 166 return (layer_data, rdr) if return_reader else layer_data 168 if plugin_name: --> 169 raise ValueError( plugin_name = 'aicsimageio-in-memory' paths = ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'] 170 f"Plugin {plugin_name!r} was selected to open " 171 + f"{paths!r}, but returned no data." 172 ) 173 raise ValueError(f"No readers returned data for {paths!r}")
ValueError: Plugin 'aicsimageio-in-memory' was selected to open ['Z:/Till/188_viventis_data/downscaled_mCherry-1.tif'], but returned no data.
steps to reproduce (on Windows 11 with mambaforge):
mamba create -n minimal-example napari-aicsimageio
mamba activate minimal-example
napari
in napari go to file->open and select a tif file and choose aicsimageio as reader plugin (example.zip contains file that I used for testing)
mamba list output
# packages in environment at C:\Users\[username]\mambaforge\envs\vanilla-napari: # # Name Version Build Channel aicsimageio 4.10.0 pyhd8ed1ab_1 conda-forge aiohttp 3.8.4 py310h8d17308_0 conda-forge aiosignal 1.3.1 pyhd8ed1ab_0 conda-forge alabaster 0.7.13 pyhd8ed1ab_0 conda-forge aom 3.5.0 h63175ca_0 conda-forge app-model 0.1.4 pyhd8ed1ab_0 conda-forge appdirs 1.4.4 pyh9f0ad1d_0 conda-forge asciitree 0.3.3 py_2 conda-forge asttokens 2.2.1 pyhd8ed1ab_0 conda-forge async-timeout 4.0.2 pyhd8ed1ab_0 conda-forge attrs 23.1.0 pyh71513ae_1 conda-forge aws-c-auth 0.6.27 hdef5456_1 conda-forge aws-c-cal 0.5.26 h1b710bc_1 conda-forge aws-c-common 0.8.19 hcfcfb64_0 conda-forge aws-c-compression 0.2.16 h91ceee4_7 conda-forge aws-c-event-stream 0.2.20 h3025ae5_7 conda-forge aws-c-http 0.7.7 haa0fb2f_4 conda-forge aws-c-io 0.13.21 hcbbf384_5 conda-forge aws-c-mqtt 0.8.11 ha0c62a6_1 conda-forge aws-c-s3 0.3.0 h9503c08_2 conda-forge aws-c-sdkutils 0.1.9 h91ceee4_2 conda-forge aws-checksums 0.1.14 h91ceee4_7 conda-forge aws-crt-cpp 0.20.2 he8b9daf_0 conda-forge aws-sdk-cpp 1.10.57 ha156882_13 conda-forge babel 2.12.1 pyhd8ed1ab_1 conda-forge backcall 0.2.0 pyh9f0ad1d_0 conda-forge backports 1.0 pyhd8ed1ab_3 conda-forge backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge blosc 1.21.4 hdccc3a2_0 conda-forge bokeh 3.1.1 pyhd8ed1ab_0 conda-forge brotli 1.0.9 hcfcfb64_8 conda-forge brotli-bin 1.0.9 hcfcfb64_8 conda-forge bzip2 1.0.8 h8ffe710_4 conda-forge c-ares 1.19.1 hcfcfb64_0 conda-forge c-blosc2 2.9.2 h183a6f4_0 conda-forge ca-certificates 2023.5.7 h56e8100_0 conda-forge cachey 0.2.1 pyh9f0ad1d_0 conda-forge certifi 2023.5.7 pyhd8ed1ab_0 conda-forge cfitsio 4.2.0 h9ebe7e4_0 conda-forge charls 2.4.2 h1537add_0 conda-forge charset-normalizer 2.1.1 pyhd8ed1ab_0 conda-forge click 8.1.3 win_pyhd8ed1ab_2 conda-forge cloudpickle 2.2.1 pyhd8ed1ab_0 conda-forge colorama 0.4.6 pyhd8ed1ab_0 conda-forge comm 0.1.3 pyhd8ed1ab_0 conda-forge contourpy 1.0.7 py310h232114e_0 conda-forge cytoolz 0.12.0 py310h8d17308_1 conda-forge dask 2023.5.1 pyhd8ed1ab_0 conda-forge dask-core 2023.5.1 pyhd8ed1ab_0 conda-forge dav1d 1.2.1 hcfcfb64_0 conda-forge debugpy 1.6.7 py310h00ffb61_0 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge distributed 2023.5.1 pyhd8ed1ab_0 conda-forge docstring_parser 0.15 pyhd8ed1ab_0 conda-forge docutils 0.17.1 py310h5588dad_3 conda-forge elementpath 2.5.3 pyhd8ed1ab_0 conda-forge entrypoints 0.4 pyhd8ed1ab_0 conda-forge executing 1.2.0 pyhd8ed1ab_0 conda-forge expat 2.5.0 h63175ca_1 conda-forge fasteners 0.17.3 pyhd8ed1ab_0 conda-forge ffmpeg 5.1.2 gpl_h5b1d025_107 conda-forge font-ttf-dejavu-sans-mono 2.37 hab24e00_0 conda-forge font-ttf-inconsolata 3.000 h77eed37_0 conda-forge font-ttf-source-code-pro 2.038 h77eed37_0 conda-forge font-ttf-ubuntu 0.83 hab24e00_0 conda-forge fontconfig 2.14.2 hbde0cde_0 conda-forge fonts-conda-ecosystem 1 0 conda-forge fonts-conda-forge 1 0 conda-forge freetype 2.12.1 h546665d_1 conda-forge freetype-py 2.4.0 pyhd8ed1ab_0 conda-forge frozenlist 1.3.3 py310h8d17308_0 conda-forge fsspec 2023.5.0 pyh1a96a4e_0 conda-forge gettext 0.21.1 h5728263_0 conda-forge gflags 2.2.2 ha925a31_1004 conda-forge giflib 5.2.1 h64bf75a_3 conda-forge glib 2.76.3 h12be248_0 conda-forge glib-tools 2.76.3 h12be248_0 conda-forge glog 0.6.0 h4797de2_0 conda-forge gst-plugins-base 1.22.3 h001b923_1 conda-forge gstreamer 1.22.3 h6b5321d_1 conda-forge heapdict 1.0.1 py_0 conda-forge hsluv 5.0.2 pyh44b312d_0 conda-forge icu 72.1 h63175ca_0 conda-forge idna 3.4 pyhd8ed1ab_0 conda-forge imagecodecs 2023.1.23 py310habf4aba_2 conda-forge imageio 2.28.1 pyh24c5eb1_0 conda-forge imageio-ffmpeg 0.4.8 pyhd8ed1ab_0 conda-forge imagesize 1.4.1 pyhd8ed1ab_0 conda-forge importlib-metadata 6.6.0 pyha770c72_0 conda-forge importlib_metadata 6.6.0 hd8ed1ab_0 conda-forge importlib_resources 5.12.0 pyhd8ed1ab_0 conda-forge in-n-out 0.1.7 pyhd8ed1ab_0 conda-forge intel-openmp 2023.1.0 h57928b3_46319 conda-forge ipykernel 6.23.1 pyh025b116_0 conda-forge ipython 8.14.0 pyh08f2357_0 conda-forge ipython_genutils 0.2.0 py_1 conda-forge jedi 0.18.2 pyhd8ed1ab_0 conda-forge jinja2 3.1.2 pyhd8ed1ab_1 conda-forge jsonschema 4.17.3 pyhd8ed1ab_0 conda-forge jupyter_client 8.2.0 pyhd8ed1ab_0 conda-forge jupyter_core 5.3.0 py310h5588dad_0 conda-forge jxrlib 1.1 h8ffe710_2 conda-forge kiwisolver 1.4.4 py310h232114e_1 conda-forge krb5 1.20.1 heb0366b_0 conda-forge lazy_loader 0.2 pyhd8ed1ab_0 conda-forge lcms2 2.15 h3e3b177_1 conda-forge lerc 4.0.0 h63175ca_0 conda-forge libabseil 20230125.2 cxx17_h63175ca_2 conda-forge libaec 1.0.6 h63175ca_1 conda-forge libarrow 12.0.0 hba48b7f_6_cpu conda-forge libavif 0.11.1 ha7b97ba_2 conda-forge libblas 3.9.0 17_win64_mkl conda-forge libbrotlicommon 1.0.9 hcfcfb64_8 conda-forge libbrotlidec 1.0.9 hcfcfb64_8 conda-forge libbrotlienc 1.0.9 hcfcfb64_8 conda-forge libcblas 3.9.0 17_win64_mkl conda-forge libclang 15.0.7 default_h77d9078_2 conda-forge libclang13 15.0.7 default_h77d9078_2 conda-forge libcrc32c 1.1.2 h0e60522_0 conda-forge libcurl 8.1.2 h68f0423_0 conda-forge libdeflate 1.18 hcfcfb64_0 conda-forge libevent 2.1.12 h3671451_1 conda-forge libexpat 2.5.0 h63175ca_1 conda-forge libffi 3.4.2 h8ffe710_5 conda-forge libglib 2.76.3 he8f3873_0 conda-forge libgoogle-cloud 2.11.0 h00b2bdc_1 conda-forge libgrpc 1.54.2 ha177ca7_2 conda-forge libhwloc 2.9.1 h51c2c0f_0 conda-forge libiconv 1.17 h8ffe710_0 conda-forge libjpeg-turbo 2.1.5.1 hcfcfb64_0 conda-forge liblapack 3.9.0 17_win64_mkl conda-forge libogg 1.3.4 h8ffe710_1 conda-forge libopus 1.3.1 h8ffe710_1 conda-forge libpng 1.6.39 h19919ed_0 conda-forge libprotobuf 3.21.12 h12be248_0 conda-forge libsodium 1.0.18 h8d14728_1 conda-forge libsqlite 3.42.0 hcfcfb64_0 conda-forge libssh2 1.11.0 h7dfc565_0 conda-forge libthrift 0.18.1 h06f6336_2 conda-forge libtiff 4.5.0 h6c8260b_6 conda-forge libutf8proc 2.8.0 h82a8f57_0 conda-forge libvorbis 1.3.7 h0e60522_0 conda-forge libwebp-base 1.3.0 hcfcfb64_0 conda-forge libxcb 1.15 hcd874cb_0 conda-forge libxml2 2.10.4 hc3477c8_0 conda-forge libxslt 1.1.37 h0192164_0 conda-forge libzlib 1.2.13 hcfcfb64_4 conda-forge libzopfli 1.0.3 h0e60522_0 conda-forge locket 1.0.0 pyhd8ed1ab_0 conda-forge lxml 4.9.2 py310hc0e5b84_0 conda-forge lz4 4.3.2 py310hbbb2075_0 conda-forge lz4-c 1.9.4 hcfcfb64_0 conda-forge m2w64-gcc-libgfortran 5.3.0 6 conda-forge m2w64-gcc-libs 5.3.0 7 conda-forge m2w64-gcc-libs-core 5.3.0 7 conda-forge m2w64-gmp 6.1.0 2 conda-forge m2w64-libwinpthread-git 5.0.0.4634.697f757 2 conda-forge magicgui 0.7.2 pyhd8ed1ab_0 conda-forge markdown-it-py 2.2.0 pyhd8ed1ab_0 conda-forge markupsafe 2.1.3 py310h8d17308_0 conda-forge matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge mdurl 0.1.0 pyhd8ed1ab_0 conda-forge mkl 2022.1.0 h6a75c08_874 conda-forge msgpack-python 1.0.5 py310h232114e_0 conda-forge msys2-conda-epoch 20160418 1 conda-forge multidict 6.0.4 py310h8d17308_0 conda-forge mypy_extensions 1.0.0 pyha770c72_0 conda-forge napari 0.4.17 pyh275ddea_0_pyqt conda-forge napari-aicsimageio 0.4.1 pyhd8ed1ab_0 conda-forge napari-console 0.0.8 pyhd8ed1ab_0 conda-forge napari-plugin-engine 0.2.0 pyhd8ed1ab_2 conda-forge napari-svg 0.1.7 pyhd8ed1ab_0 conda-forge nest-asyncio 1.5.6 pyhd8ed1ab_0 conda-forge networkx 3.1 pyhd8ed1ab_0 conda-forge npe2 0.7.0 pyhd8ed1ab_0 conda-forge numcodecs 0.11.0 py310h00ffb61_1 conda-forge numpy 1.24.3 py310hd02465a_0 conda-forge numpydoc 1.5.0 pyhd8ed1ab_0 conda-forge ome-types 0.3.3 pyhd8ed1ab_0 conda-forge ome-zarr 0.7.1 pyhd8ed1ab_0 conda-forge openh264 2.3.1 h63175ca_2 conda-forge openjpeg 2.5.0 ha2aaf27_2 conda-forge openssl 3.1.1 hcfcfb64_1 conda-forge orc 1.8.3 hada7b9e_1 conda-forge packaging 23.1 pyhd8ed1ab_0 conda-forge pandas 1.5.3 py310h1c4a608_1 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge partd 1.4.0 pyhd8ed1ab_0 conda-forge pcre2 10.40 h17e33f8_0 conda-forge pickleshare 0.7.5 py_1003 conda-forge pillow 9.5.0 py310hb653ca7_1 conda-forge pint 0.22 pyhd8ed1ab_1 conda-forge pip 23.1.2 pyhd8ed1ab_0 conda-forge pkgutil-resolve-name 1.3.10 pyhd8ed1ab_0 conda-forge platformdirs 3.5.1 pyhd8ed1ab_0 conda-forge ply 3.11 py_1 conda-forge pooch 1.7.0 pyha770c72_3 conda-forge prompt-toolkit 3.0.38 pyha770c72_0 conda-forge prompt_toolkit 3.0.38 hd8ed1ab_0 conda-forge psutil 5.9.5 py310h8d17308_0 conda-forge psygnal 0.9.0 pyhd8ed1ab_0 conda-forge pthread-stubs 0.4 hcd874cb_1001 conda-forge pthreads-win32 2.9.1 hfa6e2cd_3 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge pyarrow 12.0.0 py310hd1a9178_6_cpu conda-forge pydantic 1.10.8 py310h8d17308_0 conda-forge pygments 2.15.1 pyhd8ed1ab_0 conda-forge pyopengl 3.1.6 pyhd8ed1ab_1 conda-forge pyproject_hooks 1.0.0 pyhd8ed1ab_0 conda-forge pyqt 5.15.7 py310h1fd54f2_3 conda-forge pyqt5-sip 12.11.0 py310h00ffb61_3 conda-forge pyrsistent 0.19.3 py310h8d17308_0 conda-forge pysocks 1.7.1 pyh0701188_6 conda-forge python 3.10.11 h4de0772_0_cpython conda-forge python-build 0.10.0 pyhd8ed1ab_1 conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python_abi 3.10 3_cp310 conda-forge pytomlpp 1.0.13 py310h232114e_0 conda-forge pytz 2023.3 pyhd8ed1ab_0 conda-forge pywavelets 1.4.1 py310h9b08ddd_0 conda-forge pywin32 304 py310h00ffb61_2 conda-forge pyyaml 6.0 py310h8d17308_5 conda-forge pyzmq 25.1.0 py310hcd737a0_0 conda-forge qt-main 5.15.8 h2c8576c_13 conda-forge qtconsole-base 5.4.3 pyha770c72_0 conda-forge qtpy 2.3.1 pyhd8ed1ab_0 conda-forge re2 2023.03.02 hd4eee63_0 conda-forge requests 2.31.0 pyhd8ed1ab_0 conda-forge resource_backed_dask_array 0.1.0 pyhd8ed1ab_1 conda-forge rich 13.4.1 pyhd8ed1ab_0 conda-forge scikit-image 0.20.0 py310h1c4a608_1 conda-forge scipy 1.10.1 py310h578b7cb_3 conda-forge setuptools 67.7.2 pyhd8ed1ab_0 conda-forge shellingham 1.5.1 pyhd8ed1ab_0 conda-forge sip 6.7.9 py310h00ffb61_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge snappy 1.1.10 hfb803bf_0 conda-forge snowballstemmer 2.2.0 pyhd8ed1ab_0 conda-forge sortedcontainers 2.4.0 pyhd8ed1ab_0 conda-forge sphinx 4.5.0 pyh6c4a22f_0 conda-forge sphinxcontrib-applehelp 1.0.4 pyhd8ed1ab_0 conda-forge sphinxcontrib-devhelp 1.0.2 py_0 conda-forge sphinxcontrib-htmlhelp 2.0.1 pyhd8ed1ab_0 conda-forge sphinxcontrib-jsmath 1.0.1 py_0 conda-forge sphinxcontrib-qthelp 1.0.3 py_0 conda-forge sphinxcontrib-serializinghtml 1.1.5 pyhd8ed1ab_2 conda-forge stack_data 0.6.2 pyhd8ed1ab_0 conda-forge superqt 0.4.1 pyhd8ed1ab_0 conda-forge svt-av1 1.4.1 h63175ca_0 conda-forge tbb 2021.9.0 h91493d7_0 conda-forge tblib 1.7.0 pyhd8ed1ab_0 conda-forge tifffile 2023.2.28 pyhd8ed1ab_0 conda-forge tk 8.6.12 h8ffe710_0 conda-forge toml 0.10.2 pyhd8ed1ab_0 conda-forge tomli 2.0.1 pyhd8ed1ab_0 conda-forge toolz 0.12.0 pyhd8ed1ab_0 conda-forge tornado 6.3.2 py310h8d17308_0 conda-forge tqdm 4.65.0 pyhd8ed1ab_1 conda-forge traitlets 5.9.0 pyhd8ed1ab_0 conda-forge typer 0.9.0 pyhd8ed1ab_0 conda-forge typing-extensions 4.6.3 hd8ed1ab_0 conda-forge typing_extensions 4.6.3 pyha770c72_0 conda-forge tzdata 2023c h71feb2d_0 conda-forge ucrt 10.0.22621.0 h57928b3_0 conda-forge urllib3 2.0.3 pyhd8ed1ab_0 conda-forge vc 14.3 hb25d44b_16 conda-forge vc14_runtime 14.34.31931 h5081d32_16 conda-forge vispy 0.11.0 py310h9b08ddd_1 conda-forge vs2015_runtime 14.34.31931 hed1258a_16 conda-forge wcwidth 0.2.6 pyhd8ed1ab_0 conda-forge wheel 0.40.0 pyhd8ed1ab_0 conda-forge win_inet_pton 1.1.0 pyhd8ed1ab_6 conda-forge wrapt 1.15.0 py310h8d17308_0 conda-forge x264 1!164.3095 h8ffe710_2 conda-forge x265 3.5 h2d74725_3 conda-forge xarray 2023.1.0 pyhd8ed1ab_0 conda-forge xmlschema 1.11.3 pyhd8ed1ab_0 conda-forge xorg-libxau 1.0.11 hcd874cb_0 conda-forge xorg-libxdmcp 1.1.3 hcd874cb_0 conda-forge xyzservices 2023.5.0 pyhd8ed1ab_1 conda-forge xz 5.2.6 h8d14728_0 conda-forge yaml 0.2.5 h8ffe710_2 conda-forge yarl 1.9.2 py310h8d17308_0 conda-forge zarr 2.14.2 pyhd8ed1ab_0 conda-forge zeromq 4.3.4 h0e60522_1 conda-forge zfp 1.0.0 h63175ca_3 conda-forge zict 3.0.0 pyhd8ed1ab_0 conda-forge zipp 3.15.0 pyhd8ed1ab_0 conda-forge zlib 1.2.13 hcfcfb64_4 conda-forge zlib-ng 2.0.7 hcfcfb64_0 conda-forge zstd 1.5.2 h12be248_6 conda-forge
I think this might be the same as:
https://github.com/napari/napari/issues/5837
Not sure though because of the npe vs npe2 bit.
But maybe you can try downgrading npe2 to npe2==0.6.2
@psobolewskiPhD thanks a lot for the tipp.
Activating "Use npe2 adaptor" in Preferences->Plugins as suggested by @DragaDoncila fixed the issue for me.
However, activating the npe2 adaptor broke the tools menu. Hence I decided to downgrade npe2 to v0.6.2 after all.
Maybe this could find its way into the readme under installation?
I think this will all be fixed with the 0.4.18 release, which is ComingSoonTM (no seriously, we're working on it!)
sounds great, looking forward 😄