ここで提供されているサンプルを実行しようとしています 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
をインストールした後でも試しましたが、それでも失敗しました。
Oauth2clientのインストールが失敗したようです。試してみてください
pip install --upgrade google-api-python-client
cannot import name xxxx
エラーが発生するという同様の問題が発生しました。古いoauth2clientバージョンの古い* .pycファイルが環境にあったことがわかりました。最新のoauth2clientバージョンに更新しましたが、実行しようとすると* .pycファイルが使用されていました。 oauth2client * .pycファイルを削除してから、問題なくプログラムを再実行しました。
最新のgoogle-api-python-client ...を使用するようにアップグレードした場合でも、古いライブラリの* .pycファイルがすべて削除されていることを確認する必要があります。
私は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'