FastAPI: расширение asyncio требует использования асинхронного драйвера. Загруженный «psycopg2» не является асинхронным.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 FastAPI: расширение asyncio требует использования асинхронного драйвера. Загруженный «psycopg2» не является асинхронным.

Сообщение Anonymous »

Я изучаю FastAPI по их официальному учебному пособию и сейчас дошел до главы 5 (Базы данных с SQLModel). Я использую neon db, как указано в документации.
мой код следующий:

Код: Выделить всё

src/__init__.py

Код: Выделить всё

from sqlmodel import create_engine, text
from sqlalchemy.ext.asyncio import AsyncEngine
from src.config import Config

engine = AsyncEngine(create_engine(
url=Config.DATABASE_URL,
echo=True
))

async def initdb():
"""create a connection to our db"""

async with engine.begin() as conn:
statement = text("select 'Hello World'")

result = await conn.execute(statement)

print(result)

Код: Выделить всё

src/db/main.py

Код: Выделить всё

from sqlmodel import create_engine, text
from sqlalchemy.ext.asyncio import AsyncEngine
from src.config import Config

engine = AsyncEngine(create_engine(
url=Config.DATABASE_URL,
echo=True
))

async def initdb():
"""create a connection to our db"""

async with engine.begin() as conn:
statement = text("select 'Hello World'")

result = await conn.execute(statement)

print(result)

Код: Выделить всё

DATABASE_URL="postgresql+asyncpg://username:password@server_domain/fastapi?sslmode"

Код: Выделить всё

src/config.py

Код: Выделить всё

from pydantic_settings import BaseSettings, SettingsConfigDict

class Settings(BaseSettings):
DATABASE_URL: str

model_config = SettingsConfigDict(
env_file=".env",
extra="ignore"
)

# add this line
Config = Settings()
При использовании приведенного выше кода я получаю InvalidRequestError:

InvalidRequestError: расширение asyncio требует наличия асинхронного драйвера. использовал. Загруженный
'psycopg2' не является асинхронным.

версии пакета (из требований.txt):

Код: Выделить всё

SQLAlchemy==2.0.36
sqlmodel==0.0.22
Я запускаю свой Python в виртуальной среде Mac (m1). Связана ли эта ошибка с моим оборудованием, или они изменили что-то в пакете, что забыли обновить в своей учебной документации.
Любая помощь будет оценена по достоинству.

Подробнее здесь: https://stackoverflow.com/questions/793 ... the-loaded
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»