Кажется, что этот урок по пирамиде устарел.Также я думаю, что это сделано для работы со стандартом App Engine, так как команда dev_appserver.py не работает с гибкой средой (обратите внимание на тег env: flex в файле app.yaml).
Кроме тогоМне удалось заставить пирамиду работать в App Engine Standard, как и в приложении Flask, следуя этой документации по пирамиде :
Обратите внимание на строку, где вы конфигурируете сервер, если вы используетеВ этом направлении и порту (127.0.0.1:8080) вы сможете просматривать веб-страницу из предварительного просмотра облачной оболочки «локально».
Файл main.py :
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response
def hello_world(request):
return Response('Hello World!')
def bye_world(request):
return Response('Bye!')
config = Configurator()
config.add_route('hello', '/')
config.add_view(hello_world, route_name='hello')
config.add_route('newHandler', '/bye')
config.add_view(bye_world, route_name='newHandler')
app = config.make_wsgi_app()
if __name__ == '__main__':
server = make_server('127.0.0.1', 8080, app)
server.serve_forever()
app.yaml :
runtime: python27
api_version: 1
service: default
threadsafe: yes
handlers:
- url: /.*
script: main.app
По мере использованиясторонние библиотеки (пирамиды) вам необходимо указать их .Сначала создайте файл needs.txt и введите следующие строки:
pyramid
repoze.lru
(библиотека repoze.lru представляется требованием к пирамиде)
Создайте каталог с помощьюCLI (в данном примере с именем lib), расположенный по тому же пути, что и остальные файлы, и установите библиотеки:
mkdir lib
pip install -t lib -r requirements.txt
Эта команда установит все библиотеки, перечисленные в файле 'needs.txt'.файл и скопируйте их в папку 'lib'.
Теперь создайте файл с именем appengine_config.py , который будет направлять развертывание App Engine для загрузки библиотек в папку 'lib', ивведите:
from google.appengine.ext import vendor
vendor.add('lib')
В качестве примечания вам не нужно делать это с Flask, поскольку это встроенная библиотека в App Engine, поэтому вам не нужно специально загружать библиотеку.
Наконец, чтобы протестировать приложение «локально» в Cloud Shell, вы можете запустить его в своем CLI:
python main.py
И затем использовать функцию предварительного просмотра в Cloud Shell.
Для развертывания приложенияиз вашего CLI:
gcloud app deploy
И просмотрите его в браузере с помощью команды:
gcloud app browse -s <service_name_defined_in_app.yaml>
В этом примере эта команда будет
gcloud app browse -s default