502 Bad Gateway в GAE с Django, & Log say "libBLT.2.5.so.8.6 No such file or directory"
- Django 4.0.4
- Python 3.8.9
Я развернул Django App на GAE. Но я получил ошибку "502 Bad Gateway". Я проверил журналы сервера. Это ниже.
Я думаю, что у экземпляра GAE нет TK или gunicorn не работает. Кто-нибудь знает о такой проблеме? Спасибо.
-- app.yaml --
runtime: python38
instance_class: F1
env: standard
entrypoint: gunicorn -b :$PORT <PROJECT_NAME>.wsgi:application
includes:
- secret.yaml
handlers:
- url: /static
static_dir: static/
- url: /.*
script: auto
secure: always
automatic_scaling:
max_instances: 2
-- settings/base.py --
-- settings/production.py --
from .base import *
SECRET_KEY = os.getenv('SECRET_KEY')
DEBUG = False
ALLOWED_HOSTS = ['<CUSTOM_DOMAIN>']
# データベース
import pymysql
pymysql.install_as_MySQLdb()
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '/cloudsql/' + os.getenv('DB_CONNECTION_NAME'),
'USER': os.getenv('DB_USER'),
'PASSWORD': os.getenv('DB_PASSWORD'),
'NAME': os.getenv('DB_NAME'),
}
}
# ストレージ
from google.oauth2 import service_account
GS_CREDENTIALS = service_account.Credentials.from_service_account_file(
os.path.join(BASE_DIR, '<PROJECT_NAME>/settings/<CREDENTIAL_FILE>.json')
)
DEFAULT_FILE_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
STATICFILES_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
GS_BUCKET_NAME = os.getenv('GS_BUCKET_NAME')
GS_PROJECT_ID = '<PROJECT_NAME>'
# ソーシャルログイン
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = os.getenv('SOCIAL_AUTH_GOOGLE_OAUTH2_KEY')
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = os.getenv('SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET')
SOCIAL_AUTH_FACEBOOK_KEY = os.getenv('SOCIAL_AUTH_FACEBOOK_KEY')
SOCIAL_AUTH_FACEBOOK_SECRET = os.getenv('SOCIAL_AUTH_FACEBOOK_SECRET')
Как вы упомянули, ошибка может быть вызвана tkinter, попробуйте следующее:
Поскольку в вашем entrypoint
файле есть app.yaml
, который запускается через gunicorn
, вы должны явно включить gunicorn
в requirements.txt
файл
Я решил эту проблему самостоятельно.
Там был код import turtledemo
на views.py
и библиотека требует TK. Это и было причиной ошибки.
PyCharm автоматически добавил этот код.
Спасибо, Супун Кайхара и NoCommandLine.