Google App Engine - ошибка (записи библиотек поддерживаются только средой выполнения python27)

Я разработал веб-приложение на основе Python 3.6 и Django 2.0 и впервые хочу развернуть его в Google App Engine. Когда я попытался развернуть (gcloud app deploy) его, он не прошел и показал мне следующее сообщение об ошибке:

(acct) C:\Users\tsjee_000\dev\acct\src>gcloud app deploy
ERROR: (gcloud.app.deploy) An error occurred while parsing file: [C:\Users\tsjee_000\dev\acct\src\app.yaml]
libraries entries are only supported by the "python27" runtime
  in "C:\Users\tsjee_000\dev\acct\src\app.yaml", line 34, column 13

app.yaml:

runtime: python
api_version: 1
threadsafe: yes
env: flex
entrypoint: gunicorn -b :$PORT main:app

handlers:
- url: /static
  static_dir: static/
- url: .*
  script: acct.wsgi.application

libraries:
- name: MySQLdb
  version: 1.2.5

GAE еще не поддерживает Python 3 и Django 2? Я искал ответ и пробовал разными способами, но ничего не вышло.


person TS Jee    schedule 03.08.2018    source источник


Ответы (2)


Вы смешиваете элементы конфигурации стандартной среды app.yaml (libraries в ваше дело) в гибкую среду app.yaml < / a> файл конфигурации, который вызывает отображаемую вами ошибку.

Примечания:

  • стандартная среда поддерживает только python 2.7, откуда берется версия, указанная в сообщении об ошибке
  • в зависимости от того, какой такой элемент введен, ошибки могут не возникать, что-то может незаметно не работать - например, ваши handlers конфиги также относятся к стандартной среде

В гибкой среде ваши зависимости управляются:

Может быть интересно: Как определить, относится ли страница документации Google App Engine к стандартной или гибкой среде

person Dan Cornilescu    schedule 03.08.2018
comment
Да, я сослался на множество примеров app.yaml и смешал их без учета среды. Так что после обновления я могу пойти дальше, но возникла другая ошибка: не удалось найти объект приложения app в acct. Я думаю, что эта проблема связана с кодированием, точка входа: gunicorn -b: $ PORT acct.wsgi в app.yaml. Я знаю, что это другая проблема. Но если вы дадите мне какую-нибудь подсказку, это будет хорошим подспорьем. Большое спасибо за решение. - person TS Jee; 03.08.2018
comment
у вас есть acct.py файл с app переменной, указывающей на ваше приложение? См. запуск приложения. - person Dan Cornilescu; 03.08.2018
comment
Мой - проект django, имя проекта - acct, у которого есть manage.py. Я не знаю, откуда взялось «приложение». - person TS Jee; 03.08.2018
comment
Я не использовал django. Попробуйте mysite.wsgi на основе этого руководства: cloud.google.com/python/django/f flexible- окружающая среда - person Dan Cornilescu; 04.08.2018
comment
Я думаю, что «mysite» - это пример названия проекта в руководстве. Мой проект называется acct. Сегодня, когда я снова попробовал ту же команду, она сработала. Я не знаю почему ... хотя. - person TS Jee; 07.08.2018

Попробуйте добавить:

runtime_config:
    python_version: 3

Через https://cloud.google.com/appengine/docs/fflexible/python/runtime

person kwamz    schedule 03.08.2018
comment
Извините, но это не работает. Произошла та же ошибка. - person TS Jee; 03.08.2018