Skip to content

bluesky-httpserver crashing on startup due to missing dependency 'pandas' in bluesky-queueserver #71

@JonasDevelops

Description

@JonasDevelops

I am trying to start bluesky-httpserver in a virtual environment with no other packages installed. It crashes with the following error message:

Traceback (most recent call last):
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/bin/uvicorn", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/click/core.py", line 1442, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/click/core.py", line 1363, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/click/core.py", line 1226, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/click/core.py", line 794, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/uvicorn/main.py", line 413, in main
    run(
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/uvicorn/main.py", line 580, in run
    server.run()
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/uvicorn/server.py", line 66, in run
    return asyncio.run(self.serve(sockets=sockets))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/runners.py", line 195, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/uvicorn/server.py", line 70, in serve
    await self._serve(sockets)
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/uvicorn/server.py", line 77, in _serve
    config.load()
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/uvicorn/config.py", line 435, in load
    self.loaded_app = import_from_string(self.app)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/uvicorn/importer.py", line 22, in import_from_string
    raise exc from None
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/uvicorn/importer.py", line 19, in import_from_string
    module = importlib.import_module(module_str)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 999, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/bluesky_httpserver/server.py", line 10, in <module>
    from .app import build_app
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/bluesky_httpserver/app.py", line 23, in <module>
    from .routers import core_api
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/bluesky_httpserver/routers/core_api.py", line 8, in <module>
    from bluesky_queueserver.manager.conversions import simplify_plan_descriptions, spreadsheet_to_plan_list
  File "/root/.cache/pypoetry/virtualenvs/custom-resource-access-il7asoJj-py3.12/lib/python3.12/site-packages/bluesky_queueserver/manager/conversions.py", line 8, in <module>
    import pandas as pd
ModuleNotFoundError: No module named 'pandas'

A likely cause could be the removal of dependencies in bluesky-queueserver v0.0.22.

After installing the package pandas in my virtual environment the startup works.

I realize that the solution might be to add pandas as a dependency to bluesky-queueserver, but I am getting the error when trying to use this package. For now I dont have problems when using the bluesky-queueserver package. Thats why I am posting the issue here.

Maybe it would be beneficial to have a simple test in the CI that checks if the application can be started without crashing directly since this issue seems to be similar to #56

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