导入错误:Google AnalyticsAPI授权

时间:2016-03-01 21:28:47

标签: python oauth-2.0 google-api google-oauth google-analytics-api

我试图运行此处提供的示例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)和StackOverflow提供的解决方案。到目前为止,没有任何效果,我仍然看到同样的错误。以下是我的代码。

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后也试过了,但仍然失败了。

5 个答案:

答案 0 :(得分:15)

似乎oauth2client安装不成功。试试

  

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

答案 1 :(得分:2)

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

pip install pyopenssl

基于this answer.

答案 2 :(得分:1)

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

即使您升级到使用最新的google-api-python-client ......您也希望确保删除旧库中的任何* .pyc文件。

答案 3 :(得分:0)

我能够在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'

答案 4 :(得分:0)

我的 2 美分:

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

-from WITHIN the NORMAL TERMINAL with 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 安装和更新时,这不起作用