Встроенная библиотека python flask в Google App Engine

Согласно документу начало работы. и встроенные сторонние библиотеки< /а>. Вы должны иметь возможность добавить флягу в свой проект, используя библиотеки в вашем app.yaml.

Несмотря на то, что Flask входит в состав среды выполнения и может использоваться, просто добавив в файл app.yaml директиву librarys:, в этом руководстве копия библиотеки помещается в каталог вашего приложения, что демонстрирует, как вы могли бы включить несвязанную стороннюю библиотеку. библиотеку, чтобы ваше приложение могло ее использовать.

app.yaml

runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: main.app

libraries:
- name: flask
  version: "latest"

main.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

Однако я продолжаю получать:

ImportError: Нет модуля с именем фляга

Кто-нибудь смог заставить это работать? Есть что-то, что мне не хватает? Я использую Cloud SDK для локальной разработки в Linux.


person George Bittmann    schedule 03.11.2017    source источник
comment
FWIW, ваш пример отлично работает для меня - linux GAE SDK 1.9.61. Только одно примечание: отступ вашего файла app.yaml не отображается. ОК - я отредактирую ваш пост, чтобы исправить это - проверьте, в порядке ли фактический отступ в файле, как могло быть что-то с ошибкой.   -  person Dan Cornilescu    schedule 03.11.2017
comment
На веб-сайте создается впечатление, что GAE SDK является более устаревшим для людей, которым нужна команда appcfg. Если мне придется использовать это, это помешает моей цели, я также могу использовать сторонний метод, который не предназначен для встроенных библиотек, но ни один из них не идеален. Я хотел бы использовать рекомендуемое программное обеспечение со встроенной библиотекой, которая, как указано в документации, должна работать.   -  person George Bittmann    schedule 03.11.2017
comment
Это спорно - я все еще доволен им, чем облачным SDK. Несмотря на это, облачный SDK теоретически включает в себя то же ядро, что и отдельные GAE SDK, внутри соответствующих языковых компонентов — они даже используют те же номера версий). Но да, иногда возникают расхождения в функциональности, которые можно устранить, переключаясь между SDK, поэтому я установил оба :) Старее, но все еще применимо в некоторых отношениях: stackoverflow. com/questions/33769879/   -  person Dan Cornilescu    schedule 03.11.2017
comment
Похоже, у вас установлен Cloud SDK, если вы запустите gcloud components install app-engine-python, исчезнет ли ошибка модуля, не найденная? (при условии, что вы не сопоставили локальную папку lib)   -  person BrettJ    schedule 03.11.2017
comment
sudo apt-get install google-cloud-sdk-app-engine-python дает sudo apt-get install google-cloud-sdk-app-engine-python   -  person George Bittmann    schedule 07.11.2017
comment
@DanCornilescu Я согласен с тем, что GAE SDK больше подходит, чем Cloud SDK. Иногда вместо целых джунглей нужен только банан...   -  person Niklas R.    schedule 21.11.2017


Ответы (1)


Вы также должны установить в папку lib в корне вашего проекта:

pip install flask -t lib/

Я гарантирую вам, что это сработает

person Manfredt Kavetu    schedule 29.11.2017