我正在尝试在Google应用引擎中使用此link部署样本瓶示例。当我尝试在本地使用 dev_appserver.py 运行它时,它运行正常。但是之后部署谷歌云,它不断向我显示导入烧瓶错误。
了解所有stackoverflow解决方案,但没有任何效果。 请告诉我我做错了什么
main.py
# [START app]
import logging
import sys
from os.path import expanduser, os, dirname
from flask import Flask, render_template, request
user_home = expanduser("~")
sys.path.append(user_home + 'flask/lib')
app = Flask(__name__)
# [START form]
@app.route('/form')
def form():
return render_template('form.html')
# [END form]
# [START submitted]
@app.route('/submitted', methods=['POST'])
def submitted_form():
name = request.form['name']
email = request.form['email']
site = request.form['site_url']
comments = request.form['comments']
# [END submitted]
# [START render_template]
return render_template(
'submitted_form.html',
name=name,
email=email,
site=site,
comments=comments)
# [END render_template]
@app.errorhandler(500)
def server_error(e):
# Log the error and stacktrace.
logging.exception('An error occurred during a request.')
return 'An internal error occurred.', 500
的app.yaml
runtime: python27
api_version: 1
threadsafe: true
entrypoint: gunicorn -b :$PORT main.app
# [START handlers]
handlers:
- url: /.*
script: main.app
# [END handlers]
答案 0 :(得分:2)
要在App Engine标准环境中使用Flask,您需要使用 lib 文件夹和 appengine_config.py 文件来提供它。它(尚未)打包为内置库,因此您不能在app.yaml的库部分中声明它。
有关所有详细信息,请参阅“入门”文档中的Setting up libraries to enable development部分,但这是最小版本:
首先在应用程序的根目录(包含app.yaml的文件夹)中创建一个 lib 文件夹,然后使用pip安装Flask及其依赖项:
mkdir lib
pip install -t lib flask
现在在同一文件夹中创建一个名为 appengine_config.py 的文件,其中包含以下内容:
from google.appengine.ext import vendor
vendor.add('lib')
部署应用程序后,包括 appengine_config.py 和 lib 文件夹,您应该可以像往常一样导入烧瓶。
答案 1 :(得分:0)
如果有助于将您的app.yaml添加到烧瓶依赖项
,请尝试libraries:
- name: flask
version: latest
答案 2 :(得分:0)
检查同一文件夹中是否存在名为flask.py
的文件。如果找到,请将其重命名为其他名称。