4

我想为我的 Google App Engine webapp 使用 Google Calendar API。我按照此处的说明(https://developers.google.com/google-apps/calendar/instantiate)配置应用程序,这需要我导入 gflags。我在这里下载了 gflags ( https://code.google.com/p/python-gflags/downloads/list ) 并将其解压缩到与我的 webapp 的 main.py 相同的目录中。然后我通过在命令行中运行“Python setup.py install”来设置 gflags。设置成功,显示如下:

安装 c:\python27\lib\site-packages\python_gflags-2.0-py2.7.egg

python-gflags==2.0 的处理依赖项

完成了 python-gflags==2 的处理依赖。

但是这条线仍然不起作用:

 import gflags

我在日志中收到以下错误:

NotImplementedError:必须安装 gflags 库才能使用 tools.run()。请安装 gflags 或最好切换到使用 tools.run_flow()

但我以为我已经安装了 gflags?我也很困惑为什么 setup.py 在我的 c:\python27\lib 文件夹中创建了一个 Python egg,这是否意味着 Google App Engine 将无法访问它?

4

1 回答 1

5

你在正确的轨道上,但他们的 python 设置程序把你搞砸了;它不适用于 GAE。

当您在 GAE 上部署应用程序时,它会将您的整个项目文件夹上传到 GAE 服务器。您的所有库都必须在您的项目文件夹中,否则在 GAE 服务器上运行时它们将丢失。

但是,当您安装 python 库时,它通常位于可安装包中,其中包含实际库以及一些安装程序代码、测试代码等。实际库代码通常位于实际解压缩的子文件夹中。运行安装程序会将库复制到您的全局 python 库中,这对 GAE 没有用。

因此,您需要做的是将实际的 gflags 库本身复制到您的 GAE 项目文件夹中。我快速浏览了一下,我猜您真正需要的只是将 gflags.py 和 gflags_validators.py 从 egg 复制到您的 GAE 项目文件夹中。其余的似乎是不必要的。

于 2013-12-09T20:00:28.723 回答