Python 3.x app.yaml文件中出错-502网关错误

Python 3.x app.yaml文件中出错-502网关错误,python-3.x,google-app-engine,google-cloud-platform,cloud,app.yaml,Python 3.x,Google App Engine,Google Cloud Platform,Cloud,App.yaml,我在谷歌云上部署python web应用程序时面临问题。 该应用程序在本地主机上运行良好。 错误:502坏网关 app.yaml代码: runtime: python37 handlers: - url: /.* script: auto Python脚本: *线性代数是另一个.py文件,在下面的代码中导入 from flask import Flask, render_template, request, jsonify from linear_algebra import jordan

我在谷歌云上部署python web应用程序时面临问题。
该应用程序在本地主机上运行良好。
错误:502坏网关

app.yaml代码:

runtime: python37
handlers:
- url: /.*
  script: auto
Python脚本:
*线性代数是另一个.py文件,在下面的代码中导入

from flask import Flask, render_template, request, jsonify
from linear_algebra import jordan_form, to_fraction, inverse_m, gauss_elim, det_m, eignvalues_approximately
from fractions import Fraction

app = Flask(__name__)


def fraction_to_str(x):
    if x.denominator == 1:
        return str(x.numerator)
    return str(x.numerator) + '/' + str(x.denominator)


@app.route('/')
def index():
    return render_template('index.html')


@app.route('/calculate_jordan')
def calculate_jordan():
    try:
        size = request.args.get('width', 1, type=int)
        matrix = to_fraction([request.args.getlist('matrix[{}][]'.format(i), ) for i in range(size)])
        j, c = jordan_form(matrix)
    except:
        return jsonify(matrix=[[0] * size] * size, message="Something went wrong :(", ok=False)
    return jsonify(matrix=[[fraction_to_str(x) for x in v] for v in j], message="Successfully calculated!", ok=True)


@app.route('/calculate_inverse')
def calculate_inverse():
    try:
        size = request.args.get('width', 1, type=int)
        matrix = to_fraction([request.args.getlist('matrix[{}][]'.format(i), ) for i in range(size)])
        _, rank = gauss_elim(matrix, return_rank=True)
        if rank != len(matrix):
            return jsonify(matrix=[[0] * size] * size, message="No solution Det = 0", ok=False)
        m = inverse_m(matrix)
    except:
        return jsonify(matrix=[[0] * size] * size, message="Something went wrong :(", ok=False)
    return jsonify(matrix=[[fraction_to_str(x) for x in v] for v in m], message="Successfully calculated!", ok=True)


@app.route('/calculate_gauss')
def calculate_gauss():
    try:
        width = request.args.get('width', 1, type=int)
        height = request.args.get('height', 1, type=int)
        matrix = to_fraction([request.args.getlist('matrix[{}][]'.format(i), ) for i in range(height)])
        m = gauss_elim(matrix)
    except:
        return jsonify(matrix=[[0] * width] * height, message="Something went wrong :(", ok=False)
    return jsonify(matrix=[[fraction_to_str(x) for x in v] for v in m], message="Successfully calculated!", ok=True)


@app.route('/calculate_determinant')
def calculate_determinant():
    try:
        size = request.args.get('width', 1, type=int)
        matrix = to_fraction([request.args.getlist('matrix[{}][]'.format(i), ) for i in range(size)])
        res = det_m(matrix)
    except:
        return jsonify(prefix='???', result='', message="Something went wrong :(", ok=False)
    return jsonify(prefix='Det = ', result=fraction_to_str(res), message="Successfully calculated!", ok=True)


@app.route('/calculate_eigenvalues')
def calculate_eigenvalues():
    try:
        size = request.args.get('width', 1, type=int)
        matrix = to_fraction([request.args.getlist('matrix[{}][]'.format(i), ) for i in range(size)])
        if (matrix != matrix.T).any():
            return jsonify(prefix='???', result='', message="Matrix must be symmetric :(", ok=False)
        res, history = eignvalues_approximately(matrix, return_history=True)
        res = '<br>'.join(map(lambda x: str(round(x, 6)), res))
    except Exception as e:
        print(repr(e))
        return jsonify(prefix='???', result='', message="Something went wrong :(", ok=False)
    return jsonify(prefix='Eigenvalues = <br>',
                   result=res,
                   history=[([[str(round(c, 6)) for c in r] for r in h[0]], (str(h[1][0]), str(h[1][1]))) for h in
                            history],
                   message="Successfully calculated!",
                   ok=True)


if __name__ == '__main__':
    app.run(port=8080)
从烧瓶导入烧瓶,呈现模板,请求,jsonify
从线性代数导入jordan形式,到分数,逆,高斯,det,eignvalues
从分数进口分数
app=烧瓶(名称)
def分数_至_str(x):
如果x.分母==1:
返回str(x.分子)
返回str(x.分子)+'/'+str(x.分母)
@应用程序路径(“/”)
def index():
返回渲染模板('index.html')
@应用路线('/calculate_jordan')
def calculate_jordan():
尝试:
size=request.args.get('width',1,type=int)
matrix=to_分数([request.args.getlist('matrix[{}][]'。格式(i),)表示范围(大小)中的i)
j、 c=乔丹形式(矩阵)
除:
返回jsonify(矩阵=[[0]*size]*size,message=“出现问题:(”,ok=False)
返回jsonify(矩阵=[[v中x的分数(x)]对于j中的v],message=“成功计算!”,确定=True)
@应用程序路径('/calculate_inverse')
def calculate_inverse():
尝试:
size=request.args.get('width',1,type=int)
matrix=to_分数([request.args.getlist('matrix[{}][]'。格式(i),)表示范围(大小)中的i)
_,秩=gauss\u elim(矩阵,返回值\u秩=True)
如果秩!=len(矩阵):
返回jsonify(矩阵=[[0]*size]*size,message=“无解决方案数据=0”,确定=False)
m=逆矩阵(矩阵)
除:
返回jsonify(矩阵=[[0]*size]*size,message=“出现问题:(”,ok=False)
返回jsonify(矩阵=[[v中x的分数x到x]对于m中的v],message=“成功计算!”,ok=True)
@应用程序路径('/calculate_gauss')
def calculate_gauss():
尝试:
width=request.args.get('width',1,type=int)
height=request.args.get('height',1,type=int)
matrix=to_分数([request.args.getlist('matrix[{}][]'。格式(i),)表示范围(高度)中的i)
m=gauss_elim(矩阵)
除:
返回jsonify(矩阵=[[0]*width]*height,message=“出错:(”,ok=False)
返回jsonify(矩阵=[[v中x的分数x到x]对于m中的v],message=“成功计算!”,ok=True)
@应用程序路径('/calculate_determinate')
def计算_行列式():
尝试:
size=request.args.get('width',1,type=int)
matrix=to_分数([request.args.getlist('matrix[{}][]'。格式(i),)表示范围(大小)中的i)
res=det_m(矩阵)
除:
返回jsonify(前缀='???',结果='',消息=''出错:('',确定=False)
返回jsonify(前缀='Det=',结果=分数,消息='Successfully computed!',ok=True)
@应用路径('/calculate_特征值')
def计算_特征值():
尝试:
size=request.args.get('width',1,type=int)
matrix=to_分数([request.args.getlist('matrix[{}][]'。格式(i),)表示范围(大小)中的i)
if(matrix!=matrix.T).any():
返回jsonify(前缀=“???”,结果=”,message=“矩阵必须对称:(”,ok=False)
res,history=eignvalues\u近似(矩阵,return\u history=True)
res='
'.join(map(lambda x:str(round(x,6)),res)) 例外情况除外,如e: 打印(报告(e)) 返回jsonify(前缀='???',结果='',消息=''出错:('',确定=False) 返回jsonify(前缀=
”, 结果=res, history=[([[str(round(c,6))表示r中的c]表示h中的r[0],(str(h[1][0]),str(h[1][1]))表示h中的h 历史],, message=“已成功计算!”, 正常=正确) 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': 应用程序运行(端口=8080)
部署时没有错误,但页面显示

502坏网关nginx/1.14.0(Ubuntu)


早期调试尝试是使用
index()
简单地
返回'Hello!'
并查看502是否仍然存在。应用程序的错误报告日志中是否列出了任何错误?我能够解决该问题。我认为是多个.py文件导致了冲突。早期调试尝试是使用
index()
简单地
返回'Hello!'
并查看502是否仍然存在。应用程序的错误报告日志中是否列出了任何错误?我能够解决该问题。我认为是多个.py文件导致了冲突。