テクニカルマーケターになるコースをフォローしていて、GSpreadでGoogleスプレッドシートを管理する方法を学ぼうとしています。 http://gspread.readthedocs.io/en/latest/oauth2.html のドキュメントをフォローしました。上記の2番目のURLの手順に従い、次のコードでドキュメントを実行しました。
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds']
credentials = ServiceAccountCredentials.from_json_keyfile_name('DFS Google Sheets Data Imports-7205de852ff7.json', scope)
gc = gspread.authorize(credentials)
wks = gc.open("Authority Scraper").sheet1
wks.update_cell(1,2,"Hello World!")
それから、ターミナルでエラーが発生します:from oauth2client.service_account import ServiceAccountCredentials ImportError:no module name a oauth2client.service_account
誰か助けてください。 oath2client.service_accountという名前の他のNoモジュールでの回答は私には機能していません。ありがとう!
このコマンドを実行するとうまくいきました-Sudo pip install --upgrade oauth2client
Oauth2clientライブラリからこれを取得しました github repo
この議論 によると、
これは、OS X El Capitanにはすでに6つの1.4.1がインストールされており、アンインストールしようとすると、システム整合性保護ではrootでさえこれらのディレクトリを変更できないため、アンインストールする権限がないためです。
回答で言及されているいくつかの回避策の中で、試してみる価値があるかもしれませんpip install --ignore-installed six
システムのsix
パッケージのアンインストールの試みを回避します。
ライブラリに複数のフォルダがあるかどうかを確認することで、エラーを修正できます。
C:\Python27\Lib\site-packages\oauth2client
C:\Program Files (x86)\Google\Google_Appengine\lib\google-api-python-client\oauth2client
フォルダの1つを削除するか、コンパイラでライブラリパスを変更するだけです。
このトピックについて私が作成したビデオへのリンクは次のとおりです。
だから私もこの問題に遭遇しました、そしてそれは私にとってパスの問題であることになりました。確かに、これは少し遠いです(すべての開発環境が異なるため)が、他の誰かに役立つ場合に備えて、ここにこれを記述します。
TLDR何かがあなたの$PYTHONPATH
をいじっていないことを確認してください。
Pythonで「インポート」を行うと、pythonはsys.pathでパッケージをチェックします。このリストには優先順位があります(つまり、パッケージがリスト内の以前のパスで見つかった場合)。 、その後、そのパッケージが使用されます)。
私の場合、しばらく前にappengineの処理を行ったときに、$PYTHONPATH
が変更されたようです。結局のところ、私のappengineにはかなり古い独自のoauth2client
libがありました。
その結果、pythonがfrom oauth2client.service_account
を試行したとき、oauth2client
ではなくappengineでoauth2client
を取得していました(結果として$PYTHONPATH
が変更されました)。
インポート呼び出しの前にsys.pathを出力することで、これが発生しているかどうかを確認できます。
import sys
print sys.path
from oauth2client.service_account import ServiceAccountCredentials
私の場合、優先されていた一連のappengineパスをはっきりと見ることができました。これにより、~/.bash_profile
を確認することになりました。ここで、次の行を見つけました。
export PYTHONPATH=$PYTHONPATH::$LOCAL_APPENGINE_HOME/lib/:$LOCAL_APPENGINE_HOME/lib/yaml/:$LOCAL_APPENGINE_HOME:$LOCAL_APPENGINE_HOME/lib/webapp2-2.5.2/`
それをコメントし、新しいシェルを開始し、すべてがダンディに機能しました。