,sqlalchemy"/>

首页 > 解决方案 > sqlalchemy.exc.NoInspectionAvailable:没有检查系统可用于对象类型

问题描述

我遵循了这个例子,但使用了 aiosqlite:https ://docs.sqlalchemy.org/en/14/tutorial/metadata.html#table-reflection

喜欢:

import asyncio

from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession

from sqlalchemy import MetaData
from sqlalchemy import Table, Column, Integer, String

metadata = MetaData()

engine = create_async_engine(
        "sqlite+aiosqlite:////Users/rui/database.db",
        echo=True,
        future=True,
    )

    # Table Reflection (Loading existing table)
    users = Table("users", metadata, autoload_with=engine)

然后我有这个错误:

File "/usr/local/Caskroom/miniconda/base/envs/playground/lib/python3.9/site-packages/sqlalchemy/util/deprecations.py", line 298, in warned
    return fn(*args, **kwargs)
  File "/usr/local/Caskroom/miniconda/base/envs/playground/lib/python3.9/site-packages/sqlalchemy/sql/schema.py", line 597, in __new__
    metadata._remove_table(name, schema)
  File "/usr/local/Caskroom/miniconda/base/envs/playground/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
    compat.raise_(
  File "/usr/local/Caskroom/miniconda/base/envs/playground/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
    raise exception
  File "/usr/local/Caskroom/miniconda/base/envs/playground/lib/python3.9/site-packages/sqlalchemy/sql/schema.py", line 592, in __new__
    table._init(name, metadata, *args, **kw)
  File "/usr/local/Caskroom/miniconda/base/envs/playground/lib/python3.9/site-packages/sqlalchemy/sql/schema.py", line 667, in _init
    self._autoload(
  File "/usr/local/Caskroom/miniconda/base/envs/playground/lib/python3.9/site-packages/sqlalchemy/sql/schema.py", line 700, in _autoload
    insp = inspection.inspect(autoload_with)
  File "/usr/local/Caskroom/miniconda/base/envs/playground/lib/python3.9/site-packages/sqlalchemy/inspection.py", line 71, in inspect
    raise exc.NoInspectionAvailable(
sqlalchemy.exc.NoInspectionAvailable: No inspection system is available for object of type <class 'sqlalchemy.ext.asyncio.engine.AsyncEngine'>
python-BaseException

Process finished with exit code 1

我正在使用 Python 3.9.2、sqlalchemy==1.4.5 和 aiosqlite==0.17.0

我应该换aiosqlite另一个吗?还是我应该等到 sqlalchemy 中的 asyncio 得到改进?

标签: sqlalchemy

解决方案


推荐阅读