Django не видит настройки при запуске проекта

Для телеграм бота хочу сделать админку с помощью Django (для разработки бота использую aiogram). Бот запускается с помощью app.py в корневом каталоге проекта. Структуру проекта можете видеть на скриншоте ниже. В настройках django указал имя приложения, в загрузочном файле app.py указал окружение, однако при запуске вылетает следующая ошибка

Traceback (most recent call last):
  File "c:\Users\Артём\Desktop\SfeduNet bot\app.py", line 3, in <module>
    from loader import bot, storage, db
  File "c:\Users\Артём\Desktop\SfeduNet bot\loader.py", line 8, in <module>
    from utils.db_api.postgresql import Database
  File "c:\Users\Артём\Desktop\SfeduNet bot\utils\__init__.py", line 1, in <module>
    from . import db_api
  File "c:\Users\Артём\Desktop\SfeduNet bot\utils\db_api\__init__.py", line 2, in <module>
    from . import db_cmd
  File "c:\Users\Артём\Desktop\SfeduNet bot\utils\db_api\db_cmd.py", line 1, in <module>
    from test_proj.botdata.models import User
  File "c:\Users\Артём\Desktop\SfeduNet bot\test_proj\botdata\models.py", line 3, in <module>
    class TimeBasedModel(models.Model):
  File "C:\Python39\lib\site-packages\django\db\models\base.py", line 108, in __new__
    app_config = apps.get_containing_app_config(module)
  File "C:\Python39\lib\site-packages\django\apps\registry.py", line 253, in get_containing_app_config
    self.check_apps_ready()
  File "C:\Python39\lib\site-packages\django\apps\registry.py", line 135, in check_apps_ready
    settings.INSTALLED_APPS
  File "C:\Python39\lib\site-packages\django\conf\__init__.py", line 82, in __getattr__
    self._setup(name)
  File "C:\Python39\lib\site-packages\django\conf\__init__.py", line 63, in _setup
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

Прилагаю код

settings.py из django

INSTALLED_APPS = [
    'botdata',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

app.py

from aiogram.bot.bot import Bot
from aiogram.types import BotCommand 
from loader import bot, storage, db
import os
import django
import handlers

async def on_shutdown(dp):
    await bot.close()
    await storage.close()

async def set_commands(bot: Bot):
    commands = [
        BotCommand("start", "Запуск бота"),
        BotCommand("login", "Авторизация(для админов)"),
        BotCommand("exit", "Выход")
    ]
    await bot.set_my_commands(commands)

async def on_startup(dp):
    # await db.create_connection()
    # await db.create_data_tables()
    await set_commands(bot)

def setup_django():
    os.environ.setdefault(
        'DJANGO_SETTINGS_MODULE', 
        'test_proj.test_proj.settings'
        )

    os.environ.update({"DJANGO_ALLOW_ASYNC_UNSAFE": "true"})
    django.setup()

if __name__ == '__main__':
    setup_django()

    from aiogram import executor
    from handlers import dp
    
    executor.start_polling(dp, on_shutdown=on_shutdown, on_startup=on_startup)

manage.py

 #!/usr/bin/env python
    """Django's command-line utility for administrative tasks."""
    import os
    import sys
    
    
    def main():
        """Run administrative tasks."""
        os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'test_proj.settings')
        try:
            from django.core.management import execute_from_command_line
        except ImportError as exc:
            raise ImportError(
                "Couldn't import Django. Are you sure it's installed and "
                "available on your PYTHONPATH environment variable? Did you "
                "forget to activate a virtual environment?"
            ) from exc
        execute_from_command_line(sys.argv)
    
    
    if __name__ == '__main__':
        main()

Структура проекта

Вернуться на верх