web-dev-qa-db-ja.com

ImportError:apiclient.discoveryという名前のモジュールはありません

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

130
Huy Tower

この単純なインストールでこれらの依存関係を取得できるはずです。

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

これは pythonのクイックスタートページ で説明されています。

205
Jorvis

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
98
Jesse Webb

apiclientは、appengineランタイムが提供するサードパーティライブラリのリストにありません: http://developers.google.com/appengine/docs/python/tools/libraries27 .

apiclientをプロジェクトディレクトリにコピーする必要があります。これらのuritemplateおよびhttplib2もコピーする必要があります。

注:ドキュメントリストで提供されていないサードパーティライブラリは、appengineプロジェクトディレクトリにコピーする必要があります

10
Nijin Narayanan

上記の解決策がどれもうまくいかない場合は、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 をご覧ください

6
Jonathan Hansen

App Engineプロジェクトの場合、次のように入力してローカルにlibをインストールする必要があります

pip install -t lib google-api-python-client

続きを読む こちら

6
varun
5
Joe Gregorio

google-api-python-clientのみがインストールされていることを確認してください。 apiclientがインストールされている場合、衝突が発生します。したがって、次を実行します。

Sudo pip uninstall apiclient
5
Keith Holliday

パッケージを再インストールして問題を修正しました:

pip install --force-reinstall google-api-python-client
4
mrmuggles

URITemplateモジュールのインストールにバグがあるため、同じ問題が発生しました。

これで問題が解決しました。

pip install --force-reinstall uritemplate.py
4
wizmer

python3の場合、これは私のために働いた:

Sudo pip3 install --upgrade google-api-python-client
3
R3n4

Googleカレンダーの最近のカレンダーイベントを解析するプロジェクトで作業しているときに、同じエラーが発生しました。

pipで標準インストールを使用してもうまくいきませんでした。必要なパッケージを取得するためにここで行いました

ソースに直接移動します。ここにはgoogle-api-python-clientへのリンクがありますが、別の言語が必要な場合もそうではないはずです違います。

https://github.com/google/google-api-python-client

左上の緑色の[クローンまたはダウンロード]ボタンをクリックして、Zipファイルとして保存します。 Zipをプロジェクトフォルダーに移動し、そこに解凍します。次に、作成したフォルダーからすべてのファイルをプロジェクトフォルダーのルートに戻します。

はい、これは作業スペースを混乱させますが、多くのコンパイラにはファイルを隠す方法があります。

これを行った後、標準

from googleapiclient import discovery

よく働く。

お役に立てれば。

2
Conrad Selig

「google-api-python-client」には以下が必要です。

pip install uritemplate.py

gAE開発サーバーの問題を修正するには:

from googleapiclient.discovery import build

ImportError: No module named googleapiclient.discovery
2
Dan

同じ問題が発生しました。これはうまくいきました:

>>> 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
>>> 
1
Rathna

私がSudoを使用したときのみ機能しました:

Sudo pip install --upgrade google-api-python-client
0
momen