Skip to content

Cannot import name 'checkpoint_if_cancelled' from partially initialized module 'anyio.lowlevel' #41

@CNSeniorious000

Description

@CNSeniorious000
I happened to discover this issue when using `mcp` CLI, which is weird:

> mcp

Exception in thread hmr-daemon:
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "D:\dev\m\.venv\Scripts\mcp.exe\__main__.py", line 4, in <module>
    from mcp.cli import app
  File "D:\dev\m\.venv\Lib\site-packages\mcp\__init__.py", line 1, in <module>
    from .client.session import ClientSession
  File "D:\dev\m\.venv\Lib\site-packages\mcp\client\session.py", line 5, in <module>
    import anyio.lowlevel
  File "D:\dev\m\.venv\Lib\site-packages\anyio\lowlevel.py", line 9, in <module>
    from .abc import AsyncBackend
  File "D:\dev\m\.venv\Lib\site-packages\anyio\abc\__init__.py", line 43, in <module>
    from .._core._synchronization import (
    ...<5 lines>...
    )
  File "D:\dev\m\.venv\Lib\site-packages\anyio\_core\_synchronization.py", line 12, in <module>
    from ..lowlevel import checkpoint_if_cancelled
ImportError: cannot import name 'checkpoint_if_cancelled' from partially initialized module 'anyio.lowlevel' (most likely due to a circular import) (D:\dev\m\.venv\Lib\site-packages\anyio\lowlevel.py)

Here is a minimal reproducible script:

from time import sleep

sleep(0.01)

import anyio.lowlevel  # noqa: E402, F401

Traceback:

> python bug.py

Exception in thread hmr-daemon:
Traceback (most recent call last):
  File "D:\dev\m\bug.py", line 5, in <module>
    import anyio.lowlevel  # noqa: E402, F401
    ^^^^^^^^^^^^^^^^^^^^^
  File "D:\dev\m\.venv\Lib\site-packages\anyio\lowlevel.py", line 9, in <module>
    from .abc import AsyncBackend
  File "D:\dev\m\.venv\Lib\site-packages\anyio\abc\__init__.py", line 43, in <module>
    from .._core._synchronization import (
    ...<5 lines>...
    )
  File "D:\dev\m\.venv\Lib\site-packages\anyio\_core\_synchronization.py", line 12, in <module>
    from ..lowlevel import checkpoint_if_cancelled
ImportError: cannot import name 'checkpoint_if_cancelled' from partially initialized module 'anyio.lowlevel' (most likely due to a circular import) (D:\dev\m\.venv\Lib\site-packages\anyio\lowlevel.py)

Metadata

Metadata

Assignees

No one assigned

    Labels

    hmr-daemonRelated to the `hmr-daemon` package

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions