0

我試圖在谷歌應用程序引擎中使用此link部署樣本瓶示例。當我嘗試在本地使用dev_appserver.py運行它時,它工作正常。但是在部署它谷歌雲,它不斷顯示我導入燒瓶錯誤。ImportError:無法導入應用程序引擎中的名稱瓶

通過所有的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

請嘗試,如果它有助於增加至app.yaml燒瓶依賴

libraries: 
- name: flask 
    version: latest 
+0

它給我下面的錯誤,同時部署: 錯誤:在解析文件 庫「燒瓶」不支持 – laughingmn

0

檢查是否有在同一個文件夾命名flask.py文件。如果找到,請將其重命名爲其他名稱。

+0

我檢查(gcloud.app.deploy)發生錯誤,沒有文件命名文件命名flask.py在文件夾中。 – laughingmn

+0

對不起,我現在不知道爲什麼。也許你可以製作一個virtualenv,然後再試一次。 – williezh

+0

我已經根據谷歌應用程序引擎文檔中提到的指令創建了燒瓶的virtualenv。 這就是我堅持的Cuz無處它提到如何解決它 – laughingmn

1

要在App Engine標準環境中使用瓶,你需要使用的lib文件夾appengine_config.py文件的供應商了。它尚未打包爲內置庫,因此您不能僅在app.yaml的部分聲明它。

對於所有的細節,請參見入門文檔的Setting up libraries to enable development部分,但這裏的最低版本:

首先做出的lib文件夾在您的應用程序(包含文件夾的app.yaml)的根

mkdir lib 
pip install -t lib flask 

現在創建一個名爲appengine_config.py在同一個文件夾中的文件,包含以下:有使用PIP安裝瓶及其依賴

from google.appengine.ext import vendor 
vendor.add('lib') 

一旦你部署的應用程序,包括appengine_config.py的lib文件夾,你應該能夠導入燒瓶如常。

+0

嘗試同樣的,仍然得到同樣的錯誤。 我創建了一個文件名requirements.txt,進入該文件中所需要的所有庫和管材安裝-t LIB -r requirements.txt安裝依賴 – laughingmn

+0

你還可以創建appengine_config.py?如果你不這樣做,你將無法從'lib'文件夾中導入文件。 –

+0

是的,它仍然沒有工作。 – laughingmn

相關問題