web-dev-qa-db-ja.com

Google App Engineで「ImportError:no module named oauth2client.client」を防ぐ方法は?

エラーが発生しています:

ImportError:OAuth2Clientというモジュールはありません

このトピックに関する多数の質問、多くの未回答、およびGoogle App Engine SDKからファイルをコピーするソリューションを説明する少なくとも1つの回答に気付きました。

ただし、すべての依存関係が不明確であるため、このアプローチは退屈に思われます。 oauth2clientをコピーして実行すると、次のエラーは欠落している別のモジュールです。それを修正してから、別のモジュールが見つからないなど。

皮肉なことに、必要なすべてのファイルとモジュールをPyCharmのGoogle App Engine SDKから直接表示できますが、スクリプトにはアクセスできないようです。

oauth2clientがPythonがApp Engineで動作するために必要なすべてのファイルを取り込むより良い方法はありませんか?

14
Praxiteles

答えは、ファイルの「ベンダー」です。

このドキュメントに基づいてこれを解決する簡単な方法を見つけました https://cloud.google.com/appengine/docs/python/tools/libraries27#vendoring そしてこれ SO answer =。

  1. App.yamlファイルと同じフォルダーに「lib」という名前の新しいフォルダーを作成します。 (別の名前を付けることができます。その名前を使用してください。)

  2. App.yamlファイルと同じフォルダーにappengine_config.pyという空のファイルを作成します

  3. そのappengine_config.pyファイルに2行追加します。

    from google.appengine.ext import vendor vendor.add('lib')

  4. ターミナルから、そのファイルを含むディレクトリに移動し、次のコマンドを実行します。

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

インポートエラーが消え、サブ依存モジュールもすべて表示されます。

6
Praxiteles

この問題があり、oauth2clientpip3と一緒にインストールすることで解決しました。

pip3 install --upgrade oauth2client 
37
Sadegh-khan

google-api-pythonドキュメント 、これを試してください

pip install --upgrade google-api-python-client oauth2client
16
Sumithran

インストール WHLファイル

pip install oauth2client-4.1.3-py2.py3-none-any.whl
0
Luis Fernando

これを実行する

Sudo python -m pip install oauth2client

0
Rahul Bhat