Внутренняя ошибка сервера при размещении приложения Django на Heroku

Я только что разместил свое приложение django на heroku. Сказано, что сборка прошла успешно, но когда я открываю приложение, я вижу Internal Server Error. Я написал heroku logs --tail и он говорит, что нет модуля с именем _tkinter, однако, мое приложение вообще не использует этот модуль. В чем проблема? Может ли кто-нибудь помочь мне? Вот полный вывод heroku logs --tail 2022-01-23T15:59:25.156790+00:00 app[web.1]: import tkinter as TK 2022-01-23T15:59:25.156790+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/tkinter/init.py", line 37, in 2022-01-23T15:59:25.156790+00:00 app[web.1]: import _tkinter # Если это не удается, возможно, ваш Python не настроен на Tk 2022-01-23T15:59:25.156791+00:00 app[web.1]: ModuleNotFoundError: Нет модуля с именем '_tkinter' 2022-01-23T15:59:25.157000+00:00 app[web.1]: 10.1.20.212 - - - [23/Jan/2022:15:59:25 +0000] "GET /favicon.ico HTTP/1.1" 500 0 "-" "-" 2022-01-23T15:59:25.158452+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=thinking-meme-live.herokuapp.com request_id=09f7a53c-e31c-4496-8023-5ff6be64f006 fwd="193.174.122.67" dyno=web.1 connect=0ms service=42ms status=500 bytes=244 protocol=https

перенастроил его обратно на DEBUG = True все снова работало нормально. Итак, проблема была в порядке

вы можете увидеть больше информации в командной строке при запуске heroku logs -t -a <heroku-app> даже в режиме DEBUG = False.

Измените настройки логирования django в settings.py следующим образом:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
    'verbose': {
        'format': ('%(asctime)s [%(process)d] [%(levelname)s] '
                   'pathname=%(pathname)s lineno=%(lineno)s '
                   'funcname=%(funcName)s %(message)s'),
        'datefmt': '%Y-%m-%d %H:%M:%S'
    },
    'simple': {
        'format': '%(levelname)s %(message)s'
    }
},
'handlers': {
    'null': {
        'level': 'DEBUG',
        'class': 'logging.NullHandler',
    },
    'console': {
        'level': 'INFO',
        'class': 'logging.StreamHandler',
        'formatter': 'verbose'
    }
},
'loggers': {
    'django': {
        'handlers': ['console'],
        'level': 'DEBUG',
        'propagate': True,
    },
    'django.request': {
        'handlers': ['console'],
        'level': 'DEBUG',
        'propagate': False,
    },
}

}

Затем запустите heroku logs -t -a <heroku-app> и откройте url, где вы ранее получили 500 Error, вы обнаружите проблему в логах.

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