web-dev-qa-db-ja.com

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

プロジェクトにgoogle.cloud.storage依存関係を追加したかったので、この依存関係を

pip install --upgrade google-cloud-storage

Dev_appserverを使用してアプリを再度実行すると、gcloudコンポーネントを更新する必要があることがわかります。 Ok so、gcloud components update

そして、私のsrc/__init__.pyファイルで、次のような依存関係を探すフォルダーをgcloudに指示するコードを取得しました。

from google.appengine.ext import vendor

vendor.add('src/libs')

すべての依存関係は正しくインストールされていますが、エラーImportError: No module named google.oauth2が発生しています。

PS:私のアプリは、APIへのアクセスを保護するためにOAuth2を使用しています。そして、コンポーネントを更新する前に正しく機能していましたが、コードをロールバックし、libsフォルダーを削除して依存関係を再インストールしても、モジュールなしエラーが発生し、dev_appserverがlibs内の依存関係を探していないようですフォルダ!

gcloud --versionの結果は次のとおりです:

Google Cloud SDK 188.0.1
app-engine-python 1.9.66
app-engine-python-extras 1.9.63
bq 2.0.28
core 2018.02.08
gsutil 4.28

そしてここにトレースバックがあります:

Traceback (most recent call last):
  File "/home/login/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/home/login/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/home/login/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 96, in LoadObject
    __import__(cumulative_path)
  File "/home/headless/Documents/Projects/meterFleet/app-backend/src/main.py", line 5, in <module>
    from src.app.user.api import UserApi
  File "/home/headless/Documents/Projects/meterFleet/app-backend/src/app/user/api.py", line 7, in <module>
    from src.googleapis.iam import getIamPolicy, addIapUser, deleteIapUser
  File "/home/headless/Documents/Projects/meterFleet/app-backend/src/googleapis/iam.py", line 5, in <module>
    from src.common.authentication import OAuth
  File "/home/headless/Documents/Projects/meterFleet/app-backend/src/common/authentication.py", line 3, in <module>
    from google.oauth2 import service_account
  File "/home/login/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 1147, in load_module
    raise ImportError('No module named %s' % fullname)
ImportError: No module named google.oauth2
6
Mehdi Benmoha

問題は、プロジェクトフォルダー(src/libsフォルダー)、およびpython local libsフォルダー(/usr/local/python2.7/dist-packages)にあります)python libsフォルダーと、再び機能するようになりました!

4
Mehdi Benmoha

この問題はかなり発生しました。ローカルマシンからすべてのGoogleパッケージをアンインストールし、GAEアプリフォルダーのlibフォルダーを削除し、再度作成して実行しました。

pip install -t lib google-auth google-auth-httplib2 google-api-python-client --upgrade

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

5
ethanenglish

この問題を解決するためにpipenvを使用することにしました。 pip3 install pipenv pipenv install pipenv Shell次に、必要なライブラリをインストールします。

1
Adam Mendoza