Quería agregar una dependencia de google.cloud.storage a mi proyecto, así que intenté instalar esta dependencia con
pip install --upgrade google-cloud-storage
Al ejecutar mi aplicación nuevamente con dev_appserver, me muestra que mis componentes de gcloud deben actualizarse. Ok, entonces, gcloud components update
Y en mi archivo src/__init__.py , obtuve el código que le dice a gcloud en qué carpeta buscar dependencias como esta:
from google.appengine.ext import vendor vendor.add('src/libs') Todas las dependencias están instaladas correctamente, excepto que recibo el error ImportError: No module named google.oauth2
PD: Mi aplicación usa OAuth2 para asegurar el acceso a la API. Y estaba funcionando correctamente antes de hacer una actualización de componentes, ahora incluso si revertí el código, eliminé la carpeta libs e instalé nuevamente las dependencias, todavía recibí el error Sin módulo, y parece que dev_appserver no está buscando esa dependencia dentro de libs carpeta!
Este es el resultado de 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.28Y aquí está el rastreo:
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.oauth2He tenido este problema bastante. Desinstalé todos los paquetes de Google de mi máquina local, eliminé la carpeta lib en la carpeta de mi aplicación GAE, la creé nuevamente y luego ejecuté:
pip install -t lib google-auth google-auth-httplib2 google-api-python-client --upgradeEso debería arreglar tu problema.
EDITAR: Creo que nunca obtienes este error si usas algo como virtualenv.
El problema provenía de las dependencias que se instalaban tanto en la carpeta del proyecto (en la carpeta src/libs ) como en la carpeta libs local de python (/usr/local/python2.7/dist-packages). Eliminé las bibliotecas de Google de la carpeta libs de python y ahora está funcionando de nuevo.
Simplemente actualizar algunos paquetes de python resolvió mi problema:
pip install --upgrade google-auth google-auth-httplib2 google-api-python-client