0

Я пытаюсь развернуть sample app в гибкой среде Google App Engine, основанной на this. Однако при развертывании приложение не может запускаться. Я получаю следующее сообщение об ошибке:Развертывание приложения Django для App Engine Гибкая среда

Updating service [default]...failed. 
ERROR: (gcloud.app.deploy) Error Response: [9] 
Application startup error: 
[2017-01-21 17:01:14 +0000] [5] [INFO] Starting gunicorn 19.6.0 
[2017-01-21 17:01:14 +0000] [5] [INFO] Listening at: http://0.0.0.0:8080 (5) 
[2017-01-21 17:01:14 +0000] [5] [INFO] Using worker: sync 
[2017-01-21 17:01:14 +0000] [8] [INFO] Booting worker with pid: 8 
[2017-01-21 17:01:14 +0000] [8] [ERROR] Exception in worker process 
Traceback (most recent call last): 
    File "/env/lib/python3.5/site-packages/gunicorn/arbiter.py", line 557, in spawn_worker 
    worker.init_process() 
    File "/env/lib/python3.5/site-packages/gunicorn/workers/base.py", line 126, in init_process 
    self.load_wsgi() 
    File "/env/lib/python3.5/site-packages/gunicorn/workers/base.py", line 136, in load_wsgi 
    self.wsgi = self.app.wsgi() 
    File "/env/lib/python3.5/site-packages/gunicorn/app/base.py", line 67, in wsgi 
    self.callable = self.load() 
    File "/env/lib/python3.5/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
    return self.load_wsgiapp() 
    File "/env/lib/python3.5/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
    return util.import_app(self.app_uri) 
    File "/env/lib/python3.5/site-packages/gunicorn/util.py", line 357, in import_app 
    __import__(module) 
ImportError: No module named 'mysite' 
[2017-01-21 17:01:14 +0000] [8] [INFO] Worker exiting (pid: 8) 
[2017-01-21 17:01:14 +0000] [5] [INFO] Shutting down: Master 
[2017-01-21 17:01:14 +0000] [5] [INFO] Reason: Worker failed to boot. 

Как вы можете видеть на GitHub (см ссылку выше), файл /app.yaml выглядит следующим образом:

# [START runtime] 
runtime: python 
env: flex 
entrypoint: gunicorn -b :$PORT mysite.wsgi 

beta_settings: 
    cloud_sql_instances: <your-cloudsql-connection-string> 

runtime_config: 
    python_version: 3 
# [END runtime] 

И в /MySite /wsgi.py файл, как это:

import os 

from django.core.wsgi import get_wsgi_application 

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

application = get_wsgi_application() 

Поскольку гибкая среда находится в бета-версии, я не уверен, что это может быть ошибка. Тем не менее, я использую оригинальное приложение от GitHub без каких-либо изменений после официальной документации, поэтому я ожидаю, что он сработает.

Я ценю вашу помощь.

ответ

0

Спасибо к намеку Адама (члена команды Google Cloud Platform на Google Group Forum), что файлы, вероятно, не будут развернуты, я обновил Google Cloud SDK с 138.0 до 141.0.0. Теперь все работает отлично, как описано в учебнике.

0

Try: (. Предполагая, что каталог "MySite" находится на том же уровне, как app.yaml Если wsgi.py находится на том же уровне, что и app.yaml, то просто: :$PORT wsgi:application)

entrypoint: gunicorn -b :$PORT mysite.wsgi:application

+0

Благодарим вас за ответ. Я получаю ту же ошибку. Я думаю, что _application_ является параметром по умолчанию, поэтому он должен работать без него, как в документации [Django] (https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/gunicorn/). Вы можете увидеть структуру каталогов в [GitHub] (https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/appengine/flexible/django_cloudsql). – Tas

0

Убедитесь, что ваши требования были выполнены, т.е. скопировать requirements.txt в корень вашего проекта

https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/appengine/flexible/django_cloudsql/requirements.txt

, который выглядит следующим образом

Django==1.11.1 
mysqlclient==1.3.10 
wheel==0.29.0 
gunicorn==19.7.1 
psycopg2==2.7.1 

и запустить

pip install -r requirements.txt 

Затем развертывание gcloud app

Смежные вопросы