ImportError:无法在app引擎中导入名称Flask

时间:2017-05-22 13:28:16

标签: python python-2.7 google-app-engine google-app-engine-python

我正在尝试在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]

3 个答案:

答案 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的文件。如果找到,请将其重命名为其他名称。