Circular import error during ./scripts/install-dev.sh (DeploymentFilter ImportError)
- Dominant language
- Python
- Stars
- 670
- Forks
- 183
- Avg merge
- 17h 7m
- Merged PRs (30d)
- 358
Description
### What Operating System(s) are you seeing this problem on?
Linux (x86-64)
### Backend.AI version
02945791d02af206e1ded88a4b334148f95a2f3c
### Describe the bug
### Describe the bug
While running the development installation script (`./scripts/install-dev.sh`),
the installation fails due to a circular import error in the GraphQL deployment modules.
---
### Command used
```bash
./scripts/install-dev.sh
ImportError: cannot import name 'DeploymentFilter' from partially initialized module
'ai.backend.manager.api.gql.deployment.types.deployment'
(most likely due to a circular import)
### Stack trace
[INFO] Creating docker compose configuration file for "halfstack"...
Generating GraphQL v1 schema...
2025-12-29 13:47:03.592 INFO ai.backend.common.identity [143501] Detected environment: on-premise setup
2025-12-29 13:47:03.592 INFO ai.backend.common.identity [143501] The agent node ID is set using the hostname.
Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in _run_code
File "/home/moon-asus/install/backend.ai/src/ai/backend/cli/__main__.py", line 12, in
main(max_content_width=shutil.get_terminal_size().columns - 2)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/moon-asus/install/backend.ai/dist/export/python/virtualenvs/python-default/3.13.7/lib/python3.13/site-packages/click/core.py", line 1161, in __call__
return self.main(*args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/home/moon-asus/install/backend.ai/src/ai/backend/cli/extensions.py", line 25, in main
super().main(
~~~~~~~~~~~~^
*args,
^^^^^^
...<2 lines>...
**kwargs,
^^^^^^^^^
)
^
File "/home/moon-asus/install/backend.ai/dist/export/python/virtualenvs/python-default/3.13.7/lib/python3.13/site-packages/click/core.py", line 1082, in main
rv = self.invoke(ctx)
File "/home/moon-asus/install/backend.ai/dist/export/python/virtualenvs/python-default/3.13.7/lib/python3.13/site-packages/click/core.py", line 1697, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/home/moon-asus/install/backend.ai/dist/export/python/virtualenvs/python-default/3.13.7/lib/python3.13/site-packages/click/core.py", line 1697, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/home/moon-asus/install/backend.ai/dist/export/python/virtualenvs/python-default/3.13.7/lib/python3.13/site-packages/click/core.py", line 1691, in invoke
cmd_name, cmd, args = self.resolve_command(ctx, args)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/home/moon-asus/install/backend.ai/dist/export/python/virtualenvs/python-default/3.13.7/lib/python3.13/site-packages/click/core.py", line 1738, in resolve_command
cmd = self.get_command(ctx, cmd_name)
File "/home/moon-asus/install/backend.ai/src/ai/backend/common/cli.py", line 15, in wrapped
return method(self._impl, *args, **kwargs)
^^^^^^^^^^
File "/home/moon-asus/install/backend.ai/src/ai/backend/common/cli.py", line 49, in _impl
self._loaded_impl = getattr(import_module(module), name)
~~~~~~~~~~~~~^^^^^^^^
File "/home/moon-asus/.pyenv/versions/3.13.7/lib/python3.13/importlib/__init__.py", line 88, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 1026, in exec_module
File "", line 488, in _call_with_frames_removed
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/cli/api.py", line 15, in
from ..api.gql.schema import schema as strawberry_schema
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/schema.py", line 39, in
from .deployment import (
...<30 lines>...
)
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/__init__.py", line 14, in
from .resolver import (
...<30 lines>...
)
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/resolver/__init__.py", line 7, in
from .access_token import (
create_access_token,
)
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/resolver/access_token.py", line 8, in
from ai.backend.manager.api.gql.deployment.types.access_token import (
...<3 lines>...
)
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/types/__init__.py", line 22, in
from .deployment import (
...<24 lines>...
)
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/types/deployment.py", line 27, in
from ai.backend.manager.api.gql.deployment.fetcher.access_token import fetch_access_tokens
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/fetcher/__init__.py", line 7, in
from .deployment import (
...<3 lines>...
)
File "/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/fetcher/deployment.py", line 14, in
from ai.backend.manager.api.gql.deployment.types.deployment import (
...<5 lines>...
)
ImportError: cannot import name 'DeploymentFilter' from partially initialized module 'ai.backend.manager.api.gql.deployment.types.deployment' (most likely due to a circular import) (/home/moon-asus/install/backend.ai/src/ai/backend/manager/api/gql/deployment/types/deployment.py)
### To Reproduce
_No response_
### Expected Behavior
_No response_
### Anything else?
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.