Python 3 Django на App Engine Standard: приложение не запускается - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь развернуть приложение Django в Google App Engine в стандартной среде Python37.У меня была его версия, работающая нормально в Гибкой среде, но я создаю промежуточную версию, которую я хочу запустить в Стандартном окружении.

При развертывании и посещении приложения я получаю 500ошибка.Просматривая в журналах, я вижу сообщения об исключениях в рабочих процессах.Я получаю сообщение об ошибке:

ModuleNotFoundError: Нет модуля с именем 'main'

Это трассировка стека от ошибки:

Traceback(последний вызов был последним):

Файл "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", строка 583, в spawn_worker worker.init_process ()

Файл "/env/lib/python3.7/site-packages/gunicorn/workers/gthread.py", строка 104, в файле init_process super (ThreadWorker, self) .init_process ()

Файл "/ env/lib/python3.7/site-packages/gunicorn/workers/base.py ", строка 129, в init_process self.load_wsgi ()

Файл" /env/lib/python3.7/site-packages/gunicorn/workers/base.py ", строка 138, в load_wsgi self.wsgi = self.app.wsgi ()

Файл" /env/lib/python3.7/site-packages/gunicorn/app/base.py ", строка 67, в wsgi self.callable = self.load ()

Файл" /env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py ",строка 52, при загрузке возвращает self.load_wsgiapp ()

File "/env/lib/python3.7/site-packages / gunicorn / app / wsgiapp.py ", строка 41, в load_wsgiapp возвращает util.import_app (self.app_uri)

Файл" /env/lib/python3.7/site-packages/gunicorn/util.py ", строка 350, в import_app import (module)

ModuleNotFoundError: Нет модуля с именем 'main'

Я не изменял my_site/wsgi.py с тех порДжанго создал его для меня, вот оно:

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_site.settings")

application = get_wsgi_application()

Это мое app.yaml:

runtime: python37
env: standard

beta_settings:
    cloud_sql_instances: project:us-west1:sql-instance

handlers:
- url: /static
  static_dir: staticfiles/
- url: .*
  secure: always
  redirect_http_response_code: 301
  script: my_site.wsgi.application

env_variables:
  # vars

Это очень близко соответствует app.yaml в: https://cloud.google.com/python/django/appengine. Я также пытался изменить script на auto, как показано здесь: https://cloud.google.com/appengine/docs/standard/python3/config/appref,, но все равно получаю ту же ошибку.

Я смотрел на этот вопрос: DjangoGunicorn на App Engine.Ошибка: 'No Module Named my_project' , а my_site содержит подчеркивание, но не в camelCased.

Я не уверен, что является источником этой ошибки.Любые идеи будут высоко оценены.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Вы также можете развернуть его без точки входа, но ваш объект приложения должен быть расположен в файле main.py в корневом каталоге.

Проверьте пример описания такого развертывания здесь

0 голосов
/ 20 сентября 2018

Возможно, вам понадобится добавить entrypoint в ваш app.yaml

runtime: python37
entrypoint: gunicorn -b :8080 my_site.wsgi

...(remaining parts of your app.yaml)

Ссылка: https://cloud.google.com/appengine/docs/standard/python3/runtime

...