导入错误:Google Analytics API 授权

Posted

技术标签:

【中文标题】导入错误:Google Analytics API 授权【英文标题】:Import Error: Google Analytics API Authorization 【发布时间】:2016-06-14 12:28:03 【问题描述】:

我正在尝试运行https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/service-py 此处提供的示例以进行授权。

我从 SO 中的其他问题中注意到 (ImportError: cannot import name SignedJwtAssertionCredentials) SignedJwtAssertionCredentials 已被删除,因此无法导入。

所以,我开始关注 GitHub 页面 (https://github.com/google/oauth2client/issues/401) 和 *** 上提供的解决方案。到目前为止,没有任何效果,我仍然看到同样的错误。以下是我的代码。

import argparse

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

import httplib2
from oauth2client import client
from oauth2client import file
from oauth2client import tools

而且,这是我在运行上述代码时收到的错误。

ImportError: cannot import name ServiceAccountCredentials

由于我是这个领域的新手,我尝试对OAuth 的两个版本(2.0.0 和 1.5.2)都这样做。安装pyopenssl后我也试过了,还是失败了。

【问题讨论】:

你能包含import oauth2client; oauth2client.__version__的输出吗? import oauth2client oauth2client.__version__? Type: str String form: 2.0.0-post1 Length: 11 Docstring: str(object='') -> string Return a nice string representation of the object. If the argument is a string, the return value is the same object. 问题现在似乎已经解决了。我只是在几个小时后尝试了它,它起作用了。 【参考方案1】:

oauth2client 似乎安装不成功。试试

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

【讨论】:

安装成功。 2.0.0。版本。 这不起作用的原因可能有很多。检查此链接以了解可能出错的事情。 python-notes.curiousefficiency.org/en/latest/python_concepts/…【参考方案2】:

我遇到了类似的问题,我收到了cannot import name xxxx 错误。原来我的环境中有旧的 oauth2client 版本的旧 *.pyc 文件。即使我更新到最新的 oauth2client 版本,当我尝试运行时,*.pyc 文件也会被使用。我只是删除了 oauth2client *.pyc 文件,然后重新运行我的程序,没有任何问题。

即使您升级为使用最新的 google-api-python-client...,您也需要确保已删除旧库中的所有 *.pyc 文件。

【讨论】:

【参考方案3】:

安装 pyopenssl 为我解决了这个问题:

pip install pyopenssl

基于this answer.

【讨论】:

【参考方案4】:

我能够在 python3 中解决这个问题。

我的 python 包有点凌乱和损坏,因为我使用的是 python2(默认)和 python3,而我没有使用 virtualenv。我的操作系统是 Debian GNU/Linux 8 (jessie)。我有完全相同的问题:

ImportError: cannot import name ServiceAccountCredentials

在我修复它之前,我的包在python3中是这样的:

Python 3.4.2 (default, Feb  7 2019, 06:08:06)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import oauth2client
>>> oauth2client.__version__
'1.5.2'

我必须卸载每个 pip 安装:

sudo pip uninstall pip
sudo pip3 uninstall pip
sudo python -m pip uninstall pip
sudo python3 -m pip uninstall pip

我必须使用 easy_install 安装 pip3:

sudo easy_install3 pip

我还必须卸载 oauth2client:

sudo pip3 uninstall oauth2client

原来在我的主目录中~/.local/lib/python3.4/site-packages/oauth2client/下还有一些文件,所以我从当前用户(不是root)执行以下命令来删除目录:

rm -rf ~/.local/lib/python3.4/site-packages/oauth2client*

我已经安装了 oauth2client:

sudo pip3 uninstall oauth2client

之后问题就解决了。请注意,虽然它已在我的本地系统上解决,但其他系统可能需要不同的解决方案(例如,python 临时文件可能位于不同的路径中)。但是,主要的方法是只安装 1 个 pip 模块、1 个 oauth2client 并确保没有可能影响当前 python3 环境的冲突或临时文件。

Python 3.4.2 (default, Feb  7 2019, 06:08:06)
[GCC 4.9.2] on linux
>>> import oauth2client
>>> oauth2client.__version__
'4.1.2'

【讨论】:

【参考方案5】:

我的 2cents:

为此,我必须安装和更新这些软件包

-在普通终端内使用 PLAIN PYTHON,没有 Conda 等分布(不要忘记设置 Path-Variable):

py -m pip install google-api-python-client
py -m pip install oauth2client

-或在 CONDA 终端内使用:

pip install google-api-python-client oauth2client
pip install --upgrade oauth2client  #important

当我尝试使用 pip 从 jupyter notebook 安装和更新时,这不起作用

【讨论】:

以上是关于导入错误:Google Analytics API 授权的主要内容,如果未能解决你的问题,请参考以下文章

将 Electron 与 Google Analytics 嵌入 API 一起使用

Azure 上的 Google Analytics API

已经存在 (HTTP 409) 错误 Big Query/Google Analytics

google analytics and admob,我有一些问题

markdown nuxt.jsでGoogle Analyticsを导入

每天可以对 Google AdWords 和 Analytics 进行多少 API 调用?