【问题标题】:Google Cloud Function - AttributeError: 'module' object has no attribute 'DEFAULT_MAX_REDIRECTS'谷歌云功能 - AttributeError:“模块”对象没有属性“DEFAULT_MAX_REDIRECTS”
【发布时间】:2018-02-23 04:18:04
【问题描述】:

我正在使用 Appengine cron 作业来安排云功能,当我部署并尝试运行作业时,出现以下错误。知道这里可能有什么问题吗?从 [此处][1] 执行的步骤

(/base/alloc/tmpfs/dynamic_runtimes/python27/a7637d5531ec9deb_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py:263)
Traceback (most recent call last):
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/a7637d5531ec9deb_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/a7637d5531ec9deb_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/base/alloc/tmpfs/dynamic_runtimes/python27/a7637d5531ec9deb_unzipped/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/base/data/home/apps/s~zion-hymns/20180222t221057.407849847593018575/main.py", line 18, in <module>
    import pubsub_utils
  File "/base/data/home/apps/s~zion-hymns/20180222t221057.407849847593018575/pubsub_utils.py", line 24, in <module>
    import oauth2client.contrib.appengine as gae_oauth2client
  File "./lib/oauth2client/contrib/appengine.py", line 36, in <module>
    from oauth2client import client
  File "./lib/oauth2client/client.py", line 39, in <module>
    from oauth2client import transport
  File "./lib/oauth2client/transport.py", line 255, in <module>
    redirections=httplib2.DEFAULT_MAX_REDIRECTS,
AttributeError: 'module' object has no attribute 'DEFAULT_MAX_REDIRECTS'


  [1]: https://firebase.googleblog.com/2017/03/how-to-schedule-cron-jobs-with-cloud.html?utm_campaign=culture_education_functions_en_06-29-17&utm_source=Firebase&utm_medium=yt-desc

【问题讨论】:

  • 我也有同样的问题。在出现错误ImportError: No module named httplib2 之前,一旦我通过pip install -t lib -r requirements.txt 在本地安装了python 依赖项并再次部署,我就有了相同的堆栈跟踪。
  • 这里一样,尝试安装旧版本的 google-api-python-client ,没用。似乎在谷歌方面发生了一些令人讨厌的事情。
  • 有人找到解决办法了吗?

标签: google-app-engine google-cloud-functions cron-task google-app-engine-python


【解决方案1】:

似乎我发现了问题。您的pip 使用的是哪个版本的 Python?就我而言,它是3.6,尽管 Python 本身是 2.7

所以问题是pip 下载了Python 3.6 语法版本的httplib2,它被上传到了使用 Python 2.7 的 Google App Engine。它试图加载模块并惨遭失败。

试试这个:

  1. 检查您的 pip 的版本:

点-V

如果您从/bla/bla/lib/python3.6/site-packages (python 3.6) 看到类似 pip 9.0.1 的内容,请继续

  1. 为python 2.7安装pip(应该在bin文件夹下的Python2.7安装包中)

  2. 删除项目中旧的 lib 文件夹

  3. 运行pip install -t lib -r requirements.txt(确保这个pip是正确的2.7版本)

  4. 部署

通过这样做,您使用的是正确版本的库,它应该可以工作。

希望它会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 2010-11-18
    相关资源
    最近更新 更多