在 Python Appengine 上使用 Httplib2

Posted

技术标签:

【中文标题】在 Python Appengine 上使用 Httplib2【英文标题】:Using Httplib2 on Python Appengine 【发布时间】:2011-06-30 17:07:55 【问题描述】:

为什么我在运行尝试使用 Foursquare 进行 OAuth 的应用程序时收到此错误?

import httplib2
ImportError: No module named httplib2

我已经按照here的指示下载了httplib2并在命令行上安装了$ python setup.py

我错过了什么吗?谢谢

【问题讨论】:

【参考方案1】:

您需要在项目中包含该库,以便 App Engine 运行时知道您正在导入什么。

来自here:

您可以通过将代码放在您的应用程序目录中,在您的应用程序中包含其他纯 Python 库。如果您在应用程序目录中创建一个指向模块目录的符号链接,appcfg.py 将跟随该链接并将该模块包含在您的应用程序中。

【讨论】:

我从未使用过符号链接;当用户发布应用程序时会发生什么?符号链接库也打包了吗? @systempuntoout:是的,appcfg.py 不关心应用程序目录中的模块是否是符号链接;它上传它们就好了。 @Wooble 我正在使用 Google App Engine Launcher,我是否使用终端来创建指向 httplib2 库的符号链接? @keith:是的,ln -s 创建符号链接。我不确定在 Finder 中创建的别名是否与 dev_appserver 相同。我怀疑他们可能会,尽管我目前不在 Mac 上进行测试。【参考方案2】:

我创建了一个简单示例,说明如何在使用 Google App Engine 时执行此操作。 (https://github.com/muanis/foursquare-oauth-bootstrap)基本上你需要谷歌oAuth2客户端(http://code.google.com/p/google-api-python-client/)和httplib2(http: //code.google.com/p/httplib2/)

【讨论】:

【参考方案3】:

httplib2 添加为第三方库,如此处所述:

https://cloud.google.com/appengine/docs/python/tools/libraries27#vendoring

安装方式:

pip install -t lib httplib2

【讨论】:

【参考方案4】:

https://developers.google.com/api-client-library/python/start/installation

在 App Engine 中安装库及其所有依赖项 项目,下载名为 google-api-python-client-gae-N.M.zip 的文件 从下载列表中,其中 N.M 是版本号 最新发布。将该文件解压缩到您的项目中。

【讨论】:

以上是关于在 Python Appengine 上使用 Httplib2的主要内容,如果未能解决你的问题,请参考以下文章

在没有 lxml 的 Google Appengine 上使用 python-amazon-product-api [重复]

appengine python`PUT/DELETE`在本地主机上工作但不在服务器上

在 AppEngine 的根路径上处理 _escaped_fragment_

谷歌 Appengine 数据存储 - python

Python:使用Python AppEngine作为Twitter的代理

如何从 Google 的 appengine 动态生成 pdf?