официантка + фляга + gcloud как настроить сервер - PullRequest
0 голосов
/ 15 января 2020

Я пытался развернуть приложение basi c в приложении движка Google (поскольку Azure является вымогательством) в течение последних нескольких дней я узнал, что Gunicode не работает в системе windows и что альтернатива официантка. Я прочитал все ответы, связанные с этой темой, здесь, до того, как опубликовал этот вопрос !!!

Итак, я пробовал разные настройки, читая об этом, и я до сих пор не могу запустить его. Моя область - наука о данных, но развертывание кажется обязательным в настоящее время. Если кто-то может помочь мне, пожалуйста, будет очень признателен.

файл app.py

from flask import Flask, render_template, request
from waitress import serve


app = Flask(__name__)

@app.route('/')
def index():
    name = request.args.get("name")
    if name == None:
        name = "Reinhold"
    return render_template("index.html", name=name)

if __name__ == '__main__':
    #app.run(debug=True)
    serve(app, host='0.0.0.0', port=8080)

Развертывание приложения Gcloud будет искать Gunicode, чтобы начать развертывание, которое будет на Файл app.yaml, я пробовал разные настройки там, и в итоге я настроил None, так как Flask будет искать альтернативу в моем скромном виде. Хотя я все еще думаю, что было бы лучше настроить сервер официантки там.

файл app.yaml

runtime: python37
#entrypoint: None
entrypoint: waitress-serve --listen=*:8080 serve:app

GCloud также будет искать файл appengine_config.py, где он найдет зависимости (Я думаю)

from google.appengine.ext import vendor

vendor.add('venv\Lib')

Файл require.txt будет следующим:

astroid==2.3.3
autopep8==1.4.4
Click==7.0
colorama==0.4.3
dominate==2.4.0
Flask==1.1.1
Flask-Bootstrap==3.3.7.1
Flask-WTF==0.14.2
isort==4.3.21
itsdangerous==1.1.0
Jinja2==2.10.3
lazy-object-proxy==1.4.3
MarkupSafe==1.1.1
mccabe==0.6.1
pycodestyle==2.5.0
pylint==2.4.4
six==1.13.0
typed-ast==1.4.1
visitor==0.1.3
waitress==1.4.2
Werkzeug==0.16.0
wrapt==1.11.2
WTForms==2.2.1

В консоли Google я мог получить доступ к представлению журнала, чтобы увидеть, что происходит во время развертывание, и это то, что я получил из кода, которым я поделился здесь.

{
 insertId: "5e1e9b4500029d71f92c1db9"  
 labels: {…}  
 logName: "projects/bokehflaskgcloud/logs/stderr"  
 receiveTimestamp: "2020-01-15T04:55:33.288839846Z"  
 resource: {…}  
 textPayload: "/bin/sh: 1: exec: None: not found"  
 timestamp: "2020-01-15T04:55:33.171377Z"  
}

Если кто-то может помочь решить эту проблему, это было бы здорово, потому что Google, кажется, является хорошей альтернативой для развертывания некоторой работы. Azure и VScode хорошо взаимодействуют друг с другом, поэтому развернуть его там не сложно, но стоимость его после пробного периода безумна.

Это то, что я получаю, когда пытаюсь развернуть приложение.

Error: Server Error
The server encountered an error and could not complete your request.
Please try again in 30 seconds.

Ответы [ 2 ]

0 голосов
/ 24 января 2020

легко запустить ваше приложение flask с помощью Gunicorn:

runtime: python37
entrypoint: gunicorn -b :$PORT main:app

вам нужно добавить gunicorn в Requirments.txt

проверьте эту документацию о том, как определить запуск приложения в python 3

, убедитесь, что вы запускаете свое приложение, используя flask метод run, на случай, если вы хотите протестировать ваше приложение локально:

if __name__ == '__main__':
    app.run(host='127.0.0.1', port=8080, debug=True)
0 голосов
/ 15 января 2020
  1. appengine_config.py не используется в Python 3. Среда выполнения Python 2 использует этот файл для установки клиентских библиотек и предоставления значений для констант и «функций перехвата». Среда выполнения Python 3 не использует этот файл.

  2. В файле app.py нет упоминания о flask library

Пожалуйста, добавьте следующий импорт в строку 2.

from flask import Flask, request, render_template
...