导入错误:谷歌分析 API 授权



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

我从SO中的其他问题中注意到(导入错误:无法导入名称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,但仍然失败了。

似乎 oauth2client 安装不成功。尝试

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

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

pip install pyopenssl

基于这个答案。

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

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

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

我的 2 美分:

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

-从普通PYTHON的普通终端中,没有像Conda这样的发行版(不要忘记设置路径变量):

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

- 或从康达航站楼内:

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

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

相关内容

  • 没有找到相关文章

最新更新