Python ';502坏网关nginx';在GCP中浏览Flask应用程序时出错

Python ';502坏网关nginx';在GCP中浏览Flask应用程序时出错,python,google-app-engine,flask,google-cloud-platform,cloud,Python,Google App Engine,Flask,Google Cloud Platform,Cloud,我在我的谷歌应用程序引擎上有这个问题。当我使用gcloud app browse运行应用程序时,页面会显示以下错误消息: '502坏网关 nginx' 我正在使用烧瓶应用程序 代码如下: import os from flask_uploads import UploadSet, configure_uploads, IMAGES, patch_request_class from uuid import uuid4 from flask import Flask, request, rende

我在我的谷歌应用程序引擎上有这个问题。当我使用
gcloud app browse
运行应用程序时,页面会显示以下错误消息:

'502坏网关 nginx'

我正在使用烧瓶应用程序

代码如下:

import os
from flask_uploads import UploadSet, configure_uploads, IMAGES, patch_request_class
from uuid import uuid4
from flask import Flask, request, render_template, send_from_directory
import io
from google.cloud import vision
from google.cloud.vision import types

app = Flask(__name__)
app.config['UPLOADED_PHOTOS_DEST'] = os.getcwd()

photos = UploadSet('photos', IMAGES)
configure_uploads(app, photos)
patch_request_class(app)  

APP_ROOT = os.path.dirname(os.path.abspath(__file__))

os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="json_key.txt"
vision_client = vision.ImageAnnotatorClient()

@app.route('/', methods=['GET', 'POST'])
def upload_file():
    labels = ''
    file_url1 = ''
    filename = ''
    file_url = ''
    target = os.path.join(APP_ROOT, '/')
    if request.method == 'POST' and 'photo' in request.files:
        filename = photos.save(request.files['photo'])
        file_url = photos.url(filename)
        with io.open(filename, 'rb') as image_file:
            content = image_file.read()
        image = types.Image(content=content)
        response = vision_client.label_detection(image=image)
        labels = response.label_annotations
    return render_template('index.html', thelabels=labels,image_name=file_url)

"""@app.route('/<filename>')
def send_image(filename):
    #return render_template('index.html', filename=filename)
    return send_from_directory("/", filename)"""
if __name__ == '__main__':
    app.run()

我没有使用requirements.txt文件

要部署应用程序引擎应用程序,您至少需要3个文件

  • App.yaml文件,其中包含所需的设置配置
  • 使用实际代码创建Main.py
  • 以导入所需的库
  • 作为一种替代方法,您可以在部署应用程序引擎应用程序时将库文件包含在文件中,但这不是推荐的方法,因为在应用程序扩展时,部署时间和启动时间会更长

    在这里,您可以看到所需requirements.txt的示例

    uwsgi==2.0.18
    flask==1.1.1
    google-cloud==0.34.0
    google-cloud-vision==0.39.0
    uuid==1.30.0
    Flask-Uploads==0.2.1
    

    您还可以运行命令
    pip freeze>requirements.txt来获取所需文件,但请记住,您应该只在测试中运行此命令,因为如果您在工作环境中执行pip freeze,您将得到一个非常长的列表,其中包含许多不必要的依赖项,这将大大降低应用程序部署的速度

    谷歌云应用引擎专家,但我敢打赌,你的Flask应用要么没有运行,要么没有配置到正确的端口,或者在你的情况下,我认为两者都有。您说您没有使用requirements.txt文件,但您应该这样做,因为我看到您有应用程序引擎不知道的依赖项。在您的项目根目录中,一个简单的
    pip freeze>requirements.txt
    就可以解决这个问题。另外,我认为您应该向yaml文件添加更多配置。谢谢兄弟所有是关于需求文件和app.yaml你应该安装所有需要的需求文件和软件包
    uwsgi==2.0.18
    flask==1.1.1
    google-cloud==0.34.0
    google-cloud-vision==0.39.0
    uuid==1.30.0
    Flask-Uploads==0.2.1