Google App EngineのPythonでこのエラーが発生しましたが、Google Translate APIを使用していますが、修正方法がわかりません。
<module>
from apiclient.discovery import build
ImportError: No module named apiclient.discovery
Google App Engine SDKに示す環境を設定する、そしてGoogle Apps Engineに再度アップロードしようとします常にエラーが発生します、
エラー:サーバーエラー
サーバーでエラーが発生し、リクエストを完了できませんでした。問題が解決しない場合は、問題を報告し、このエラーメッセージとその原因となったクエリを記載してください。
修正方法を教えてください、
ありがとう
PDATE:Fixed Nijjinのヘルプに従い、次のフォルダーを追加して問題を修正しました。
apiclient, gflags, httplib2, oauth2client, uritemplate
この単純なインストールでこれらの依存関係を取得できるはずです。
Sudo pip install --upgrade google-api-python-client
これは pythonのクイックスタートページ で説明されています。
apiclient
はライブラリの元の名前でした。
ある時点で、googleapiclient
に切り替えられました。
コードがGoogle App Engineで実行されている場合、両方が機能するはずです。
google-api-python-client をインストールした状態でアプリケーションを自分で実行している場合は、両方とも機能するはずです。
apiclient
パッケージの__init__.py
モジュールのソースコード を見ると、apiclient
モジュールは後方互換性のために単に保持されていることがわかります。
Apiclientをgoogleapiclientのエイリアスとして保持します。
したがって、googleapiclient
エイリアスはレガシーコードを壊さないように維持されているため、コードでapiclient
を実際に使用する必要があります。
# bad
from apiclient.discovery import build
# good
from googleapiclient.discovery import build
apiclient
は、appengineランタイムが提供するサードパーティライブラリのリストにありません: http://developers.google.com/appengine/docs/python/tools/libraries27 .
apiclient
をプロジェクトディレクトリにコピーする必要があります。これらのuritemplate
およびhttplib2
もコピーする必要があります。
注:ドキュメントリストで提供されていないサードパーティライブラリは、appengineプロジェクトディレクトリにコピーする必要があります
上記の解決策がどれもうまくいかない場合は、pythonをAnaconda経由でインストールしたかどうかを検討してください。この場合、condaを使用してGoogle APIライブラリをインストールすると修正される場合があります。
実行:
python --version
あなたが何かを得るなら
Python 3.6.4 :: Anaconda, Inc.
次に試してください:
conda install google-api-python-client
Bgoodrがコメントで指摘しているように、Google APIライブラリを取得するには、チャンネルを指定する必要があります(リポジトリを考えてください)。これを書いている時点では、これはコマンドを実行することを意味します:
conda install -c conda-forge google-api-python-client
詳しくは https://anaconda.org/conda-forge/google-api-python-client をご覧ください
App Engineプロジェクトの場合、次のように入力してローカルにlibをインストールする必要があります
pip install -t lib google-api-python-client
続きを読む こちら
google-api-python-client
のみがインストールされていることを確認してください。 apiclient
がインストールされている場合、衝突が発生します。したがって、次を実行します。
Sudo pip uninstall apiclient
パッケージを再インストールして問題を修正しました:
pip install --force-reinstall google-api-python-client
URITemplateモジュールのインストールにバグがあるため、同じ問題が発生しました。
これで問題が解決しました。
pip install --force-reinstall uritemplate.py
python3の場合、これは私のために働いた:
Sudo pip3 install --upgrade google-api-python-client
Googleカレンダーの最近のカレンダーイベントを解析するプロジェクトで作業しているときに、同じエラーが発生しました。
pipで標準インストールを使用してもうまくいきませんでした。必要なパッケージを取得するためにここで行いました
ソースに直接移動します。ここにはgoogle-api-python-clientへのリンクがありますが、別の言語が必要な場合もそうではないはずです違います。
https://github.com/google/google-api-python-client
左上の緑色の[クローンまたはダウンロード]ボタンをクリックして、Zipファイルとして保存します。 Zipをプロジェクトフォルダーに移動し、そこに解凍します。次に、作成したフォルダーからすべてのファイルをプロジェクトフォルダーのルートに戻します。
はい、これは作業スペースを混乱させますが、多くのコンパイラにはファイルを隠す方法があります。
これを行った後、標準
from googleapiclient import discovery
よく働く。
お役に立てれば。
「google-api-python-client」には以下が必要です。
pip install uritemplate.py
gAE開発サーバーの問題を修正するには:
from googleapiclient.discovery import build
ImportError: No module named googleapiclient.discovery
同じ問題が発生しました。これはうまくいきました:
>>> import pkg_resources
>>> pkg_resources.require("google-api-python-client")
[google-api-python-client 1.5.3 (c:\python27), uritemplate 0.6 (c:\python27\lib\site-packages\uritemplate-0.6-py2.7.Egg), six 1.10.0 (c:\python27\lib\site-packages\six-1.10.0-py2.7.Egg), oauth2client 3.0.0 (c:\python27\lib\site-packages\oauth2client-3.0.0-py2.7.Egg), httplib2 0.9.2 (c:\python27\lib\site-packages\httplib2-0.9.2-py2.7.Egg), simplejson 3.8.2 (c:\python27\lib\site-packages\simplejson-3.8.2-py2.7-win32.Egg), six 1.10.0 (c:\python27\lib\site-packages\six-1.10.0-py2.7.Egg), rsa 3.4.2 (c:\python27\lib\site-packages\rsa-3.4.2-py2.7.Egg), pyasn1-modules 0.0.8 (c:\python27\lib\site-packages\pyasn1_modules-0.0.8-py2.7.Egg), pyasn1 0.1.9 (c:\python27\lib\site-packages\pyasn1-0.1.9-py2.7.Egg)]
>>> from apiclient.discovery import build
>>>
私がSudoを使用したときのみ機能しました:
Sudo pip install --upgrade google-api-python-client