首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >waitress+flask+gcloud如何设置服务器

waitress+flask+gcloud如何设置服务器
EN

Stack Overflow用户
提问于 2020-01-15 05:19:39
回答 2查看 474关注 0票数 0

在过去的几天里,我一直在尝试将一个基本的应用程序部署到谷歌引擎应用程序(因为Azure是一种敲诈),我了解到Gunicode在windows系统上不起作用,而另一种选择是服务员。在发布这个问题之前,我在这里阅读了所有有关这个问题的答案!

所以我一直在尝试不同的设置,读到它,我仍然无法让它运行。我的领域是数据科学,但是现在部署似乎是必须的。如果有人能帮我,我会非常感激的。

app.py文件

代码语言:javascript
复制
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应用程序部署将在app.yaml文件中查找gunicode来启动部署,我在那里尝试了不同的设置,最后我没有设置它,因为Flask将在我的简陋视图中寻找替代方案。不过我还是觉得在那里设置服务生会更好。

app.yaml文件

代码语言:javascript
复制
runtime: python37
#entrypoint: None
entrypoint: waitress-serve --listen=*:8080 serve:app

GCloud还将查找一个appengine_config.py文件,它将在该文件中找到依赖项(我认为)

代码语言:javascript
复制
from google.appengine.ext import vendor

vendor.add('venv\Lib')

requirements.txt文件如下:

代码语言:javascript
复制
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控制台中,我可以访问日志视图,查看部署过程中发生了什么错误,这就是我从这里共享的代码中得到的。

代码语言:javascript
复制
{
 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"  
}

如果有人能帮助解决这个问题,那就太好了,因为谷歌似乎是部署一些工作的好选择。Azure和VScode有很好的交互性,所以在那里部署它并不难,但是在试用后它的成本是疯狂的。

这就是我尝试部署应用程序时得到的结果。

代码语言:javascript
复制
Error: Server Error
The server encountered an error and could not complete your request.
Please try again in 30 seconds.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-24 15:37:56

使用Gunicorn轻松运行你的烧瓶应用程序:

代码语言:javascript
复制
runtime: python37
entrypoint: gunicorn -b :$PORT main:app

您需要在您的requirments.txt中添加gunicorn

检查这份文件如何在python 3中定义应用程序启动

确保您使用烧瓶运行方法运行您的应用程序,以防您想在本地测试应用程序:

代码语言:javascript
复制
if __name__ == '__main__':
    app.run(host='127.0.0.1', port=8080, debug=True)
票数 0
EN

Stack Overflow用户

发布于 2020-01-15 13:41:22

  1. Python3中不使用appengine_config.py。Python2运行时使用此文件安装客户端库,并为常量和“钩子函数”提供值。Python 3运行时不使用此文件。
  2. app.py文件中没有提到烧瓶库

请在第2行添加以下导入。

代码语言:javascript
复制
from flask import Flask, request, render_template
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59745516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档