ModuleNotFoundError при выполнении '$ python manage.py collectstatic --noinput'

Я пытался решить эту проблему, много искал, но не смог найти никаких решений. Я пытаюсь развернуть мое приложение django на heroku из heroku-CLI, но получил эту ошибку при выполнении '$ python manage.py collectstatic --noinput'.

ModuleNotFoundError: No module named 'my_app.settings.local'; 'quiz_api.settings' is not a package
!Error while running '$ python manage.py collectstatic --noinput'.

Эта ошибка возникла после того, как settings.py был разделен на base.py, local.py и product.py. До этого проблем не было вообще.

root
my_project
 -my_app
  -settings
    __init___.py "in settings dir"
    base.py
    local.py
    production.py
  __init__.py "in my_app dir"
  wsgi.py
  etc...
.env
manage.py
etc...

base.py (BASE_DIR может быть проблемой)

manage.py

import os
import sys


def main():
    """Run administrative tasks."""
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_app.settings.local')
    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()

wsgi.py

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_app.settings')

application = get_wsgi_application()

Я думал, что проблема в том, что my_app или settings не рассматриваются как модули, даже включая файл init.py, поэтому я протестировал в локальном окружении, после чего все работает нормально без каких-либо проблем. (в этом случае local.py был прочитан)

также, я установил DJANGO_SETTINGS_MODULE = my_app.settings.production в Config Vars (пробовал my_app, my_app.settings тоже), но все равно выдает ошибку, что просто масса отличается как 'my_app.settings.production'; 'quiz_api.settings' не является пакетом. Таким образом, я понял, что проблема в том, что мое приложение не рассматривается как модуль при запуске '$ python manage.py collectstatic --noinput'.

любое предложение, пожалуйста.

В вашем файле settings.py просто добавьте этот код:

import django_heroku

django_heroku.settings(locals()) #Activate django heroku.

Попробуйте и посмотрите, решит ли это вашу ошибку

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