![](/img/trans.png)
[英]Can’t Import sklearn into Flask App on Google Compute Engine with Apache
[英]Can't import Flask while using Google App Engine
我正在遵循本指南并尝试开发一个 Flask 应用程序以在 Google App Engine 上运行。 我遵循了这封信的指南,但是当我从 Launcher 启动开发应用程序服务器并转到http://localhost:8080/ 时,出现 HTTP 500 错误。
我检查了日志,它说No module named flask
。 然后我通过运行import flask
检查管理控制台中的交互式控制台,并收到相同的错误消息。 我可以在任何其他 python 文件中导入烧瓶而不会出错。
有没有办法解决这个问题?
与 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
;C:\\Python27;C:\\Python27\\Scripts
到值的末尾并保存安装 setuptools MS Windows 安装程序(需要在 Windows 上安装 PIP)
安装画中画
python setup.py install
安装 Virtualenv
pip install virtualenv
mkdir c:\\virtualenvs
来创建一个文件夹到 Virtual Envscd c:\\virtualenvs
以访问该文件夹virtualenv flaskdemo
为你的项目创建一个 virtualenvc:\\virtualenvs\\flaskdemo\\scripts\\activate
安装 Google App Engine SDK
创建项目
(看这里的代码示例: https : //github.com/maxcnunes/flaskgaedemo )
安装 Flask 以在本地运行
pip install flask
安装 Flask 以在 GAE 上运行
使用 GAE SDK 运行应用程序
通常,模板带有一个requirements.txt
。 如果没有,请在那里添加您的依赖项,然后运行pip install -t lib -r requirements.txt
强制将库保存在lib
文件夹中。
请确保您已使用vendor.add('lib')
将lib
添加到appengine_config.py
vendor.add('lib')
如果它尚未存在)。
我也面临着同样的问题,花了 1 天的时间在重构我的烧瓶应用程序时发现了我的愚蠢错误,我已经将appengine_config.py
更改为其他名称。
理想情况下,如果您的所有依赖项都在lib
文件夹中,那么appengine_config.py
应该如下所示
from google.appengine.ext import vendor
#Add any libraries installed in the "lib" folder.
vendor.add('lib')
并且因为它无法找到并执行appengine_config.py
所以lib
文件夹没有注册为依赖文件夹。 要检查,您可以尝试在appengine_config.py
打印一些内容以检查它是否在服务器启动时执行。
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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.