scverse / scverse/napari-spatialdata
RuntimeError when trying to run napari-spatialdata
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 90
- Forks
- 25
- Avg merge
- 22m
- Merged PRs (30d)
- 1
Description
Hey
I've installed napari-spatialdata in a new conda env like so pip install napari-spatialdata[all].
I am getting this error when running napari --plugin napari-spatialdata <dataset-name>.
Env:
- windows11
- Python 3.11.12
napari --plugin napari-spatialdata <dataset-name>
Traceback (most recent call last):
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\npe2\_command_registry.py", line 32, in resolve
self.function = utils.import_python_name(self.python_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\npe2\manifest\utils.py", line 260, in import_python_name
mod = import_module(module_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\napari_spatialdata\__init__.py", line 15, in <module>
from napari_spatialdata._interactive import Interactive as Interactive # noqa: E402
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\napari_spatialdata\_interactive.py", line 8, in <module>
from spatialdata._types import ArrayLike
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\spatialdata\__init__.py", line 6, in <module>
import dask.dataframe as dd
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\dask\dataframe\__init__.py", line 81, in <module>
from dask.dataframe import backends, dispatch, rolling
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\dask\dataframe\backends.py", line 15, in <module>
from dask.dataframe.core import DataFrame, Index, Scalar, Series, _Frame
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\dask\dataframe\core.py", line 36, in <module>
from dask.dataframe import methods
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\dask\dataframe\methods.py", line 34, in <module>
from dask.dataframe.utils import is_dataframe_like, is_index_like, is_series_like
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\dask\dataframe\utils.py", line 20, in <module>
from dask.dataframe import ( # noqa: F401 register pandas extension types
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\dask\dataframe\_dtypes.py", line 9, in <module>
from dask.dataframe.extensions import make_array_nonempty, make_scalar
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\dask\dataframe\extensions.py", line 8, in <module>
from dask.dataframe.accessor import (
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\dask\dataframe\accessor.py", line 126, in <module>
class DatetimeAccessor(Accessor):
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\dask\dataframe\accessor.py", line 81, in __init_subclass__
_bind_property(cls, pd_cls, attr, min_version)
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\dask\dataframe\accessor.py", line 35, in _bind_property
setattr(cls, attr, property(derived_from(pd_cls, version=min_version)(func)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\dask\utils.py", line 856, in wrapper
method.__doc__ = _derived_from(
^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\dask\utils.py", line 809, in _derived_from
method_args = get_named_args(method)
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\dask\utils.py", line 570, in get_named_args
s = inspect.signature(func)
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\inspect.py", line 3263, in signature
return Signature.from_callable(obj, follow_wrapped=follow_wrapped,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\inspect.py", line 3011, in from_callable
return _signature_from_callable(obj, sigcls=cls,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\inspect.py", line 2599, in _signature_from_callable
call = _descriptor_get(call, obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\inspect.py", line 2432, in _descriptor_get
return get(descriptor, obj, type(obj))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: descriptor '__call__' for 'type' objects doesn't apply to a 'property' object
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Scripts\napari.exe\__main__.py", line 7, in <module>
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\napari\__main__.py", line 584, in main
_run()
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\napari\__main__.py", line 348, in _run
viewer._window._qt_viewer._qt_open(
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\napari\_qt\qt_viewer.py", line 981, in _qt_open
self.viewer.open(
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\napari\components\viewer_model.py", line 1228, in open
self._add_layers_with_plugins(
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\napari\components\viewer_model.py", line 1428, in _add_layers_with_plugins
layer_data, hookimpl = read_data_with_plugins(
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\napari\plugins\io.py", line 78, in read_data_with_plugins
res = _npe2.read(paths, plugin, stack=stack)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\napari\plugins\_npe2.py", line 57, in read
layer_data, reader = io_utils.read_get_reader(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\npe2\io_utils.py", line 66, in read_get_reader
return _read(
^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\npe2\io_utils.py", line 165, in _read
read_func = rdr.exec(
^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\npe2\manifest\contributions\_readers.py", line 61, in exec
callable_ = super().exec(args=args, kwargs=kwargs, _registry=_registry)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\npe2\manifest\utils.py", line 61, in exec
return self.get_callable(reg)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\npe2\manifest\utils.py", line 71, in get_callable
return _registry.get(self.command)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\npe2\_command_registry.py", line 138, in get
return self._commands[id].resolve()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\roya\AppData\Local\anaconda3\envs\napari-env\Lib\site-packages\npe2\_command_registry.py", line 34, in resolve
raise RuntimeError(
RuntimeError: Failed to import command at 'napari_spatialdata:get_reader': descriptor '__call__' for 'type' objects doesn't apply to a 'property' object
WARNING: QThread: Destroyed while thread is still running
13:44:08 : WARNING : MainThread : QThread: Destroyed while thread is still running
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue with pip install napari-spatialdata[all] and napari --plugin napari-spatialdata <dataset-name> on Windows 11 with Python 3.11.12. Start by tracing the import failure through napari_spatialdata, spatialdata, and dask.dataframe; done means the plugin loads the dataset without the reported RuntimeError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100