【问题标题】:Python Request Module - Google App EnginePython 请求模块 - Google App Engine
【发布时间】:2013-06-12 06:17:51
【问题描述】:

我正在尝试为我想要在 Google App Engine 上本地查看的应用导入请求模块。我收到一个日志控制台错误,告诉我“不存在这样的模块”。

我已经在命令行中安装了它(使用pip),甚至尝试将它安装在我的项目目录中。当我这样做时,shell 会告诉我:

“要求已满足(使用 --upgrade 升级):/Library/Python/2.7/site-packages 中的请求”。

App Engine 告诉我该模块不存在,并且 shell 说它已经安装了它。

我不知道这是否是路径问题。如果是这样,我可以在我的 mac 中找到的唯一与 App Engine 相关的应用程序是启动器?

【问题讨论】:

  • 你可以改用python的httplib模块

标签: python google-app-engine


【解决方案1】:

您需要将请求模块,即the contents of the requests folder 放在您的项目目录中。为清楚起见,您的应用目录应如下所示

/myapp/app.yaml
/myapp/main.py
/myapp/requests/packages/
/myapp/requests/__init__.py
/myapp/requests/adapters.py
etc...

然后在 main.py 中放入类似

import webapp2
import requests

class MainHandler(webapp2.RequestHandler):
    def get(self):
        g = requests.get('http://www.google.com')
        self.response.write(g.text)

app = webapp2.WSGIApplication([
    ('/', MainHandler)
], debug=True)

【讨论】:

  • 非常感谢!很抱歉这个基本问题(我没有这么久)但是我如何从 Git 中做到这一点?文件太多不知道用什么。
  • @RadhaKapoor 你必须直接将它复制到文件夹中。
  • @RadhaKapoor 从github.com/kennethreitz/requests/archive/master.zip 下载请求库可能更简单,解压缩并将请求目录粘贴到您的 appengine 文件夹中。
  • @user714852 所以我实际上只是将您链接到的整个请求文件夹拖放到我的网络应用程序项目文件夹中。我仍然收到相同的错误,即“没有名为请求的模块”。我把它放在错误的文件夹中了吗?你的意思是不是不同的?再次感谢您 - 我真的很感激。
  • 您在调用库之前是否提出了“导入请求”?
【解决方案2】:

您需要将 requests/requests 子文件夹添加到您的项目中。从您的脚本位置 (.),您应该会在 ./requests/__init__.py 看到一个文件。

这适用于您为 Google App Engine 添加的所有模块。如果在该位置下没有__init__.py,它将无法工作。

您不需要将模块添加到app.yaml

【讨论】:

    猜你喜欢
    • 2013-04-04
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 2014-05-21
    相关资源
    最近更新 更多