在 Python 中尝试 运行 Gmail API 快速启动的属性错误

Attribute Error trying to run Gmail API quickstart in Python

看来这里可能存在版本不匹配的问题。我应该如何修复它?

我正在尝试使用 pip 更新六个,但这没有任何作用。

这是我看到的错误:

Traceback (most recent call last):
  File "./quickstart.py", line 27, in <module>
    credentials = run(flow, STORAGE, http=http)
  File "/Library/Python/2.7/site-packages/oauth2client/util.py", line 137, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/oauth2client/old_run.py", line 120, in run
    authorize_url = flow.step1_get_authorize_url()
  File "/Library/Python/2.7/site-packages/oauth2client/util.py", line 137, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 1827, in step1_get_authorize_url
    return _update_query_params(self.auth_uri, query_params)
  File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 435, in _update_query_params
    parts = urllib.parse.urlparse(uri)
AttributeError: 'Module_six_moves_urllib_parse' object has no attribute 'urlparse'

我 运行 遇到了一个非常相似的问题,尽管使用的是完全不同的 API(计算引擎)。我最终将 google api 客户端回滚到以前的版本 - 1.3.2 - 而不是最新的 - 1.4.0。为此,我 运行:

sudo pip install -I google-api-python-client==1.3.2

然后能够 运行 我的代码。

我不确定这是否是同一个问题,但它似乎对我有用,希望对您有所帮助。

找出问题的根源 -- 预安装的 OSX 版本 6 (1.4.1) 是加载的版本,因为它的位置在您的 python 路径中排在第一位。

gmail (1.6.1) 所需的版本因此被屏蔽,因此从未导入。

一个快速修复方法是将 1.6.1 安装目录添加到您的 python 路径中,这样它会在 1.4.1 版本之前加载。不是最好的解决方案,但它有效。

import sys
sys.path.insert(1, '/Library/Python/2.7/site-packages')