4

我正在遵循本指南并尝试开发一个 Flask 应用程序以在 Google App Engine 上运行。我按照这封信的指南进行操作,但是当我从启动器启动开发应用程序服务器并转到http://localhost:8080/时,我收到了 HTTP 500 错误。

我检查日志,它说No module named flask。然后我通过运行检查管理控制台中的交互式控制台,import flask并收到相同的错误消息。我可以在任何其他 python 文件中导入烧瓶而不会出错。

有没有办法来解决这个问题?

4

5 回答 5

9

使用 GAE 和 Flask 我已经意识到这一点:

直接用 Python 运行

要直接使用 python ( python app.py) 运行应用程序,您需要使用以下命令在您的环境中安装依赖包:pip install flask

使用 dev_appserver.py 运行

要使用 GAE SDK 提供的 dev_appserver.py 运行应用程序,您需要在项目中包含所有依赖包,例如:Flask、jinja2 ... 在我的另一个答案中查看如何配置此包的示例:https://stackoverflow。 com/a/14248647/1050818

更新

在 Windows 上运行 Python、Virtualenv、Flask 和 GAE

安装 Python

  1. 安装 Python http://www.python.org/ftp/python/2.7.2/python-2.7.2.msi
  2. 单击 Windows 开始按钮并通过“编辑系统环境”搜索并打开
  3. 转到高级选项卡,然后单击“环境变量...”按钮
  4. 当 Environment Variables 窗口打开时,从 System variables 列表中选择 Path 并单击 Edit...</li>
  5. 将其添加;C:\Python27;C:\Python27\Scripts到值的末尾并保存

安装 setuptools MS Windows 安装程序(需要在 Windows 上安装 PIP)

  1. 在此页面http://pypi.python.org/pypi/setuptools#files中为您选择正确的安装程序(我使用了这个: http: //pypi.python.org/packages/2.7/s/setuptools/setuptools- 0.6c11.win32-py2.7.exe#md5=57e1e64f6b7c7f1d2eddfc9746bbaf20 )
  2. 下载安装程序并安装它

安装画中画

  1. 下载 PIP http://pypi.python.org/pypi/pip#downloads
  2. 解压到任意文件夹
  3. 从该目录中,键入python setup.py install

安装 Virtualenv

  1. 执行pip install virtualenv
  2. 执行此mkdir c:\virtualenvs操作以创建到 Virtual Envs 的文件夹
  3. 执行此cd c:\virtualenvs操作以访问该文件夹
  4. 执行virtualenv flaskdemo为您的项目创建一个 virtualenv
  5. 激活虚拟环境c:\virtualenvs\flaskdemo\scripts\activate

安装 Google App Engine SDK

  1. 安装 SDK https://developers.google.com/appengine/downloads

创建项目

  1. 为您的项目创建一个目录
  2. 创建您的应用程序的主体https://github.com/maxcnunes/flaskgaedemo/blob/master/main.py
  3. 为 Google App Engine https://github.com/maxcnunes/flaskgaedemo/blob/master/app.yaml创建您的应用程序的配置
  4. 创建一个文件让 GAE 初始化您的应用程序https://github.com/maxcnunes/flaskgaedemo/blob/master/initialize_gae.py

(在此处查看代码示例:https ://github.com/maxcnunes/flaskgaedemo )

安装 Flask 以在本地运行

  1. 执行pip install flask

安装 Flask 以在 GAE 上运行

  1. 下载 Flask https://github.com/mitsuhiko/flask/archive/0.9.zip并在你的项目中提取文件夹flask
  2. 下载 Werkzeug https://github.com/mitsuhiko/werkzeug/archive/0.8.3.zip并在项目中解压 werkzeug 文件夹
  3. 下载 Jinja2 https://github.com/mitsuhiko/jinja2/archive/2.6.zip并在您的项目中提取文件夹 jinja2
  4. 下载 Simple Json https://github.com/simplejson/simplejson/archive/v3.0.5.zip并在您的项目中提取文件夹 simplejson

使用 GAE SDK 运行应用程序

  1. 打开 Google App Engine 启动器
  2. 添加新应用程序
  3. 运行应用程序
  4. 单击浏览按钮以在浏览器上打开您的应用程序
  5. 最后单击 Deploy 按钮以部署您的应用程序
于 2013-01-10T00:24:18.160 回答
4

通常,模板带有requirements.txt. 如果没有,请在此处添加您的依赖项,然后运行pip install -t lib -r requirements.txt以强制将库保存在lib文件夹中。

如果它还没有,请确保你已经添加lib了。appengine_config.pyvendor.add('lib')

于 2016-09-08T04:40:01.217 回答
1

我也遇到了同样的问题,在花了 1 天的时间后发现我的愚蠢错误实际上是在重构我的烧瓶应用程序时更改 appengine_config.py为其他名称。

如果您的所有依赖项仅在文件夹中,理想情况下appengine_config.py应该如下所示lib

from google.appengine.ext import vendor

#Add any libraries installed in the "lib" folder.
vendor.add('lib')

并且因为它无法找到并执行appengine_config.py所以lib文件夹没有注册为依赖文件夹。要检查,您可以尝试打印一些appengine_config.py内容以检查它是否在服务器启动时执行。

于 2017-11-17T03:59:16.880 回答
0

您是否安装了 Python 的 Extra Libraries 组件?它可以安装

gcloud components install app-engine-python-extras

安装这个额外的库后,您应该可以毫无问题地使用内置的烧瓶库。有关更多信息,请参阅此页面

资源

于 2019-12-29T14:56:17.793 回答
0

tldr:使用 appengine_config.py 并将您的 virtualenv 复制到名为 lib 的文件夹中,然后确保您正在通过 dev_appserver.py 运行应用程序

(下面是通过ubuntu中的bash)所以经过长时间的战斗,我发现虚拟环境和gcloud玩得不好 -

我从我的虚拟环境目录中复制了所有内容

.../.virtualenvs/nimble/local/lib/python2.7/site-packages

进入

[projectdir]/lib

我的 appengine_config.py 终于像在云中一样在本地工作了,但我绝对必须运行

dev_appserver.py [my proj dir here]

或者 google.appengine 模块不会加载。不知道我应该使用开发服务器。我觉得很笨。

供参考,这是 appengine_config.py

"""`appengine_config` gets loaded when starting a new application instance."""

print 'running app  config yaya!'

from google.appengine.ext import vendor
vendor.add('lib')
print 'I am the line after adding lib, it should have worked'
import os
print os.getcwd()
于 2016-12-24T20:38:15.930 回答