web-dev-qa-db-ja.com

インポートエラー:Google AnalyticsAPI認証

ここで提供されているサンプルを実行しようとしています https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/service-py 認証のために。

SO( ImportError:名前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をインストールした後でも試しましたが、それでも失敗しました。

10
FreeSid91

Oauth2clientのインストールが失敗したようです。試してみてください

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

15
schafle

pyopensslをインストールすると、問題が修正されました。

pip install pyopenssl

に基づく この回答。

2
Blairg23

cannot import name xxxxエラーが発生するという同様の問題が発生しました。古いoauth2clientバージョンの古い* .pycファイルが環境にあったことがわかりました。最新のoauth2clientバージョンに更新しましたが、実行しようとすると* .pycファイルが使用されていました。 oauth2client * .pycファイルを削除してから、問題なくプログラムを再実行しました。

最新のgoogle-api-python-client ...を使用するようにアップグレードした場合でも、古いライブラリの* .pycファイルがすべて削除されていることを確認する必要があります。

1
Steve Scherer

私はpython3で問題を修正することができました。

私のpythonパッケージは、python2(デフォルトのもの)とpython3を使用していて、virtualenvを使用していなかったため、少し面倒で壊れていました。私のOSは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'
0
alexeyjaga