ImportError: no hay módulo llamado apiclient.discovery

Recibí este error en Python de Google App Engine. He utilizado la API de Google Translate, pero no sé cómo solucionarlo.

 from apiclient.discovery import build ImportError: No module named apiclient.discovery 

Intentaré establecer el entorno que indica el SDK del motor de aplicaciones de Google , y volver a cargarlo en el motor de aplicaciones de Google.

Error: error del servidor

El servidor encontró un error y no pudo completar su solicitud. Si el problema persiste, informe su problema y mencione este mensaje de error y la consulta que lo causó.

Por favor, dime cómo solucionarlo,

Gracias

ACTUALIZACIÓN: solucionado Sigue la ayuda de Nijjin, solucioné problemas agregando las siguientes carpetas,

apiclient, gflags, httplib2, oauth2client, uritemplate

Debería poder obtener estas dependencias con esta sencilla instalación:

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

Esto se describe en la página de inicio rápido de python .

apiclient era el nombre original de la biblioteca.
En algún momento, se cambió para ser googleapiclient .

Si su código se ejecuta en Google App Engine, ambos deberían funcionar.

Si está ejecutando la aplicación usted mismo, con el google-api-python-client instalado, ambos deberían funcionar también.

Aunque, si echamos un vistazo al código fuente del módulo __init__.py del paquete de __init__.py , podemos ver que el módulo de apiclient simplemente se mantuvo por compatibilidad con versiones anteriores.

Mantener un apiciente como un alias para googleapiclient.

Por lo tanto, realmente debería usar googleapiclient en su código, ya que el alias de apiclient se mantuvo para no romper el código heredado.

 # bad from apiclient.discovery import build # good from googleapiclient.discovery import build 

apiclient no se encuentra en la lista de bibliotecas de terceros que proporciona el tiempo de ejecución de appengine: http://developers.google.com/appengine/docs/python/tools/libraries27 .

apiclient copiar apiclient en el directorio de su proyecto y también debe copiar estos uritemplate & httplib2 .

Nota: cualquier biblioteca de terceros que no se suministre en la lista de documentación debe copiarse en el directorio del proyecto de su appengine

Para el proyecto del motor de aplicaciones, debes instalar la biblioteca localmente escribiendo

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

lee más aquí

Si ninguna de las soluciones anteriores funciona para usted, considere si podría haber instalado Python a través de Anaconda. Si este es el caso, la instalación de la biblioteca de Google API con conda podría solucionarlo.

Correr:

 python --version 

Si consigues algo como

 Python 3.6.4 :: Anaconda, Inc. 

Entonces intenta:

 conda install google-api-python-client 

Como ha señalado bgoodr en un comentario, es posible que deba especificar el canal (piense en el repository) para obtener la biblioteca de API de Google. En el momento de escribir esto significa ejecutar el comando:

 conda install -c conda-forge google-api-python-client 

Ver más en https://anaconda.org/conda-forge/google-api-python-client

Hay una descarga para la biblioteca del cliente Python API de Google que contiene la biblioteca y todas sus dependencias, llamada algo así como google-api-python-client-gae- .zip en la sección de descargas del proyecto. Simplemente descomprime esto en tu proyecto de App Engine.

Asegúrate de que solo tienes instalado google-api-python-client . Si tienes instalado un apiclient , causará una colisión. Entonces, ejecuta lo siguiente:

 sudo pip uninstall apiclient 

Tuve el mismo problema debido a un error en la instalación del módulo URITemplate.

Esto solucionó el problema:

 pip install --force-reinstall uritemplate.py 

Solucioné el problema reinstalando el paquete con:

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

“google-api-python-client” requiere:

 pip install uritemplate.py 

para solucionar un problema en el servidor de desarrollo GAE:

 from googleapiclient.discovery import build ImportError: No module named googleapiclient.discovery 

Recibí el mismo error al trabajar en un proyecto para analizar eventos de calendario recientes de Google Calendar.

El uso de la instalación estándar con pip no me funcionó, esto es lo que hice para obtener los paquetes que necesitaba.

Vaya directamente a la fuente, aquí hay un enlace para el cliente google-api-python , pero si necesita un idioma diferente, no debería ser demasiado diferente.

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

Haga clic en el botón verde “Clonar o Descargar” cerca de la parte superior izquierda y guárdelo como un archivo zip. Mueva el zip a su carpeta de proyecto y extráigalo allí. Luego, corte todos los archivos de la carpeta que crea de nuevo en la raíz de la carpeta de su proyecto.

Sí, esto desordena su espacio de trabajo, pero muchos comstackdores tienen formas de ocultar archivos.

Después de hacer esto el estándar.

 from googleapiclient import discovery 

Funciona genial.

Espero que esto ayude.

Me encontré con el mismo problema. Esto funcionó:

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

para python3 esto funcionó para mí:

 sudo pip3 install --upgrade google-api-python-client 

Solo funcionó conmigo cuando usé sudo:

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