Ошибка в строке кода asyncio.run(main()) и ещё много где
Я пытаюсь запустить код (Чат бот Aiogram3) который написан с видео обучения. Не могу понять почему не работает. python version 3.13.1
В файле config.py:
SQLALCHEMY_URL = 'sqlite+aiosqlite:///db.sqlite3'
В файле models.py
from sqlalchemy import BigInteger, ForeignKey
from sqlalchemy.orm import relationship, Mapped, mapped_column, DeclarativeBase, sessionmaker
from sqlalchemy.ext.asyncio import AsyncAttrs, async_sessionmaker, create_async_engine
from config import SQLALCHEMY_URL
engine = create_async_engine(SQLALCHEMY_URL, echo=True)
async_session = async_sessionmaker(engine)
class Base(AsyncAttrs, DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id: Mapped[int] = mapped_column(primary_key=True)
tg_id = mapped_column(BigInteger)
class Category(Base):
__tablename__ = 'categories'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column()
products = relationship('Product', back_populates='categories')
class Product(Base):
__tablename__ = 'products'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column()
description: Mapped[str] = mapped_column()
price: Mapped[int] = mapped_column()
category_id: Mapped[int] = mapped_column(ForeignKey('categories.id'))
category = relationship('Category', back_populates='products')
async def async_main():
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
Логи:
File "C:\io3\run.py", line 23, in <module>
asyncio.run(main())
~~~~~~~~~~~^^^^^^^^
File "C:\Program Files\Python313\Lib\asyncio\runners.py", line 194, in run
return runner.run(main)
~~~~~~~~~~^^^^^^
File "C:\Program Files\Python313\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "C:\Program Files\Python313\Lib\asyncio\base_events.py", line 720, in run_until_complete
return future.result()
~~~~~~~~~~~~~^^
File "C:\io3\run.py", line 13, in main
await async_main()
File "C:\io3\app\database\models.py", line 45, in async_main
async with engine.begin() as connection:
~~~~~~~~~~~~^^
File "C:\Program Files\Python313\Lib\contextlib.py", line 214, in __aenter__
return await anext(self.gen)
^^^^^^^^^^^^^^^^^^^^^
File "C:\io3\.venv\Lib\site-packages\sqlalchemy\ext\asyncio\engine.py", line 1063, in begin
async with conn:
^^^^
File "C:\io3\.venv\Lib\site-packages\sqlalchemy\ext\asyncio\base.py", line 121, in __aenter__
return await self.start(is_ctxmanager=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\io3\.venv\Lib\site-packages\sqlalchemy\ext\asyncio\engine.py", line 273, in start
await greenlet_spawn(self.sync_engine.connect)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\io3\.venv\Lib\site-packages\sqlalchemy\util\concurrency.py", line 99, in greenlet_spawn
_not_implemented()
~~~~~~~~~~~~~~~~^^
File "C:\io3\.venv\Lib\site-packages\sqlalchemy\util\concurrency.py", line 79, in _not_implemented
raise ValueError(
...<4 lines>...
)
ValueError: the greenlet library is required to use this function. No module named 'greenlet' ```