【发布时间】:2018-05-29 13:22:11
【问题描述】:
我已经在本地服务器上使用 Webapp2 成功运行了我的应用程序。现在我希望将它部署在 Google App Engine 上。由于库不兼容,我目前正在调试一些错误。
为了配置应用程序,我按照Google guide 添加了 3rd 方插件,例如添加了lib 文件夹和:
# appengine_config.py
from google.appengine.ext import vendor
# Add any libraries install in the "lib" folder.
vendor.add('lib')
在lib 文件夹中,我使用pip install -t lib -r requirements.txt 安装了我的要求,即
google-cloud-bigquery
oauth2client==4.1.2
google-api-python-client==1.6.4
pandas-gbq
pandas
scipy
scikit-learn==0.18.2
numpy==1.9.0
当我部署我的应用时,我看到:
Traceback(最近一次调用最后一次):文件 "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", 第 240 行,在句柄中 handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) 文件 "/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", 第 299 行,在 _LoadHandler 中 处理程序,路径,错误 = LoadObject(self._handler)文件“/base/alloc/tmpfs/dynamic_runtimes/python27/54c5883f70296ec8_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py”, 第 85 行,在 LoadObject 中 obj = import(path[0]) 文件 "/base/data/home/apps/s~corded-epigram-579/gr:20171215t102242.406232341485344902/main.py", 第 17 行,在 将 pandas 导入为 pd 文件“/base/data/home/apps/s~corded-epigram-579/gr:20171215t102242.406232341485344902/lib/pandas/init.py”, 第 19 行,在 “缺少必需的依赖项 {0}”.format(missing_dependencies)) ImportError:缺少必需的依赖项 ['numpy']
这基本上告诉我它找不到 numpy,但它在 lib 文件夹中。
我知道 google 支持 numpy v1.6.1,我可以使用 app.yaml 文件添加它,但我需要 至少 1.9.0 用于 pandas 包。
还添加了运行代码所需的 main.py 导入的屏幕截图。
【问题讨论】:
-
刚开始为什么还要用旧软件?
-
@percusse 你说的老是什么意思?标准而不是 Flex?我正在关注使用 webapp2 构建简单应用程序的教程。我正在考虑试用 Django 并在 flex 上使用它。 flex 会不会像移除 lib 文件夹,将 app.yaml 更改为 flex 一样简单?
-
新的 Numpy/pandas?如果我没记错的话,GAE 从 2016 年开始支持 Py3。
-
谢谢,我应该关闭这个问题吗?
标签: python numpy google-app-engine