【问题标题】:Using SignedJwtAssertionCredentials on Python Google App Engine在 Python Google App Engine 上使用 SignedJwtAssertionCredentials
【发布时间】:2015-07-24 14:43:27
【问题描述】:

使用下面的代码 sn-p 在我的 Google Drive 帐户上编辑电子表格的单元格。当我从我的 python IDE(不在谷歌应用引擎上)运行代码时,这有效。

import webapp2
import gspread
from oauth2client.client import SignedJwtAssertionCredentials
import json
from httplib2 import Http
from gspread.exceptions import CellNotFound
import os

# folder = os.path.dirname(os.path.realpath(__file__))
# file_path = os.path.join(folder, 'clientkey.json')
json_key = json.load(open('clientkey.json'))
scope = ['https://spreadsheets.google.com/feeds']
credentials = SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'], scope)
googleClient = gspread.authorize(credentials)

在将相同的代码复制到我要部署的谷歌应用引擎项目时,它显示以下错误。

    Traceback (most recent call last):

  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 240, in Handle

    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())

  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 299, in _LoadHandler

    handler, path, err = LoadObject(self._handler)

  File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 85, in LoadObject

    obj = __import__(path[0])

  File "C:\Users\CrowdStar\workspace\AppEngineThinkStudio\DominicProject\main.py", line 3, in <module>

    from oauth2client.client import SignedJwtAssertionCredentials

  File "C:\Users\CrowdStar\workspace\AppEngineThinkStudio\DominicProject\oauth2client\client.py", line 34, in <module>

    import six

ImportError: No module named six

我添加了所需的模块,它抛出一个错误,说需要另一个模块。继续添加所需的模块,并继续抛出错误以添加其他模块。已经添加了超过 8 个模块只是为了使它工作,它仍然说即使在 appengine 之外运行良好,也找不到一些模块。我该如何解决这个问题。

【问题讨论】:

  • 代码可以工作,因为某些模块存在于您的机器上,但不存在于处理您的应用程序的实例上。我建议完成所有模块的添加,然后在处理完所有模块后查看发生了什么。如果您仍然有错误,那么这是提出问题的正确地方

标签: python google-app-engine


【解决方案1】:

我看到这是一个更老的问题,但没有得到解答,并且仍在获得意见。如果您只将客户端库安装到您的系统站点包,则会发生这种情况:

pip install --upgrade google-api-python-client

要将库及其所有必需的依赖项一次性供应到您的应用程序目录中,以便它们与您的应用程序一起上传,请使用“-t”标志:

pip install google-api-python-client -t /myappdir

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 2013-04-14
    • 2011-05-30
    • 1970-01-01
    • 2010-12-26
    • 2012-03-25
    • 1970-01-01
    相关资源
    最近更新 更多