When I try to build a list of devices and scans with a script, and that script imports from bluesky, e.g.
/startup.py
from bluesky.preprocessors import baseline_decorator
Running qserver-list-plans-devices --startup-script startup.py fails, trying to import numpy again within a multiprocessing process:
Traceback (most recent call last):
File "/usr/local/lib/python3.14/site-packages/bluesky_queueserver/manager/gen_lists.py", line 218, in run
existing_plans, existing_devices, _, _ = existing_plans_and_devices_from_nspace(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
nspace=nspace, ignore_invalid_plans=ignore_invalid_plans, max_depth=device_max_depth
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/local/lib/python3.14/site-packages/bluesky_queueserver/manager/profile_ops.py", line 3416, in existing_plans_and_devices_from_nspace
devices_in_nspace = devices_from_nspace(nspace)
File "/usr/local/lib/python3.14/site-packages/bluesky_queueserver/manager/profile_ops.py", line 765, in devices_from_nspace
if is_device(obj):
~~~~~~~~~^^^^^
File "/usr/local/lib/python3.14/site-packages/bluesky_queueserver/manager/profile_ops.py", line 680, in is_device
from bluesky.protocols import Flyable, Readable
File "/usr/local/lib/python3.14/site-packages/bluesky/__init__.py", line 3, in <module>
from .preprocessors import SupplementalData
File "/usr/local/lib/python3.14/site-packages/bluesky/preprocessors.py", line 6, in <module>
from bluesky.protocols import Locatable
File "/usr/local/lib/python3.14/site-packages/bluesky/protocols.py", line 5, in <module>
from event_model.documents import Datum, StreamDatum, StreamResource
File "/usr/local/lib/python3.14/site-packages/event_model/__init__.py", line 33, in <module>
import numpy
File "/usr/local/lib/python3.14/site-packages/numpy/__init__.py", line 112, in <module>
from numpy.__config__ import show_config
File "/usr/local/lib/python3.14/site-packages/numpy/__config__.py", line 4, in <module>
from numpy._core._multiarray_umath import (
...<3 lines>...
)
File "/usr/local/lib/python3.14/site-packages/numpy/_core/__init__.py", line 24, in <module>
from . import multiarray
File "/usr/local/lib/python3.14/site-packages/numpy/_core/multiarray.py", line 11, in <module>
from . import _multiarray_umath, overrides
ImportError: cannot load module more than once per process
I've got a simple reproduction of the issue as a docker container. Full docker workflow log shown here.
I am using bluesky==1.15.0, bluesky-queueserver==0.0.24, numpy==2.4.4.
For numpy <2.4 the double import would raise a warning rather than an error, but the issue persists.
In our lab, we have pinned numpy <2.4 for now.
When I try to build a list of devices and scans with a script, and that script imports from bluesky, e.g.
/startup.py
Running
qserver-list-plans-devices --startup-script startup.pyfails, trying to import numpy again within a multiprocessing process:I've got a simple reproduction of the issue as a docker container. Full docker workflow log shown here.
I am using
bluesky==1.15.0,bluesky-queueserver==0.0.24,numpy==2.4.4.For numpy <2.4 the double import would raise a warning rather than an error, but the issue persists.
In our lab, we have pinned numpy <2.4 for now.