8000 pip installation does not have all required dependencies · Issue #1170 · bluesky/ophyd · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
pip installation does not have all required dependencies #1170
Open
@marcomontevechi1

Description

@marcomontevechi1

When installing ophyd via pip i noticed simdetector and similar devices break:

>>> from ophyd.areadetector.detectors import SimDetector
>>> s = SimDetector("SIM:", name="SIM")
>>> s.cam.acquire.put(1)
Traceback (most recent call last):
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 327, in __get__
    return instance._signals[self.attr]
           ~~~~~~~~~~~~~~~~~^^^^^^^^^^^
KeyError: 'cam'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 327, in __get__
    return instance._signals[self.attr]
           ~~~~~~~~~~~~~~~~~^^^^^^^^^^^
KeyError: 'array_size_z'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 329, in __get__
    return instance._instantiate_component(self.attr)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1354, in _instantiate_component
    self._signals[attr] = cpt.create_component(self)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 266, in create_component
    cpt_inst = self.cls(pv_name, parent=instance, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 897, in __init__
    getattr(self, attr)
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 325, in __get__
    print(instance._signals)
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/ophydobj.py", line 580, in __repr__
    info = ", ".join("{}={!r}".format(key, value) for key, value in info)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/ophydobj.py", line 580, in <genexpr>
    info = ", ".join("{}={!r}".format(key, value) for key, value in info)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1644, in __repr__
    return repr(list(self))
                ^^^^^^^^^^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1625, in __len__
    return len(self.__internal_list())
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1607, in __internal_list
    return list(itertools.chain.from_iterable(out))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1602, in <genexpr>
    out = (
          ^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1142, in _get_components_of_kind
    yield component_name, getattr(self, component_name)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 329, in __get__
    return instance._instantiate_component(self.attr)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 1354, in _instantiate_component
    self._signals[attr] = cpt.create_component(self)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/device.py", line 266, in create_component
    cpt_inst = self.cls(pv_name, parent=instance, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/signal.py", line 1531, in __init__
    super().__init__(read_pv, string=string, name=name, **kwargs)
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/signal.py", line 972, in __init__
    self._read_pv = self.cl.get_pv(
                    ^^^^^^^^^^^^^^^
  File "/opt/micromamba/envs/teste-deletar/lib/python3.12/site-packages/ophyd/_dummy_shim.py", line 51, in get_pv
    raise NotImplementedError
NotImplementedError

This does not happen when installing via conda-forge.
@flowln noticed that here there is a fallback to "dummy" in case neither caproto nor pyepics are installed.
The error doesnt happen in conda-forge installations since they come with pyepics and caproto.
Maybe adding these as dependencies in setup.py would fix this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0