google example python google-calendar-api

python - example - google calendar api javascript



“ImportError: file_cache no está disponible” cuando se usa el cliente Python para la cuenta de servicio de Google file_cache (4)

El jefe del código del módulo "google-api-python-client" dijo ...

install_requires = [ ''httplib2>=0.9.2,<1dev'', ''oauth2client>=1.5.0,<5.0.0dev'', <<============= ''six>=1.6.1,<2dev'', ''uritemplate>=3.0.0,<4dev'', ]

Por lo tanto, he desinstalado oauth2client versión 4.0.0

Luego, descargué auth2client 1.5.2 en un archivo tar.gz del sitio oficial de python https://pypi.python.org/pypi/oauth2client/1.5.2

He instalado este archivo descargado, así que tengo la versión 1.5.2 de oauth2client

Package Version ------------------------ --------- certifi 2016.9.26 discovery 0.0.4 distribute 0.7.3 future 0.16.0 google-api-python-client 1.5.5 httplib2 0.9.2 oauth2client 1.5.2 pefile 2016.3.28 pip 9.0.1 pyasn1 0.1.9 pyasn1-modules 0.0.8 PyInstaller 3.2 pypiwin32 219 requests 2.11.1 rsa 3.4.2 setuptools 28.8.0 six 1.10.0 uritemplate 3.0.0

Después de eso, ALL vuelve a funcionar bien y no hay ningún mensaje de advertencia.

Estoy usando una cuenta de servicio para G Suite con delegación de dominio completa. Tengo un script con acceso de solo lectura al calendario de Google. La secuencia de comandos funciona bien, pero genera un error (¿en un subproceso en segundo plano?) Cuando "compilo" el servicio. Aquí está el código:

from oauth2client.service_account import ServiceAccountCredentials from httplib2 import Http import urllib import requests from apiclient.discovery import build cal_id = "[email protected]" scopes = [''https://www.googleapis.com/auth/calendar.readonly''] credentials = ServiceAccountCredentials.from_json_keyfile_name(''my_cal_key.json'', scopes=scopes) delegated_credentials = credentials.create_delegated(''[email protected]'') http_auth = delegated_credentials.authorize(Http()) # This is the line that throws the error cal_service = build(''calendar'',''v3'',http=http_auth) #Then everything continues to work normally request = cal_service.events().list(calendarId=cal_id) response = request.execute() # etc...

El error que se produce es:

WARNING:googleapiclient.discovery_cache:file_cache is unavailable when using oauth2client >= 4.0.0 Traceback (most recent call last): File "/Users/myuseraccount/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/__init__.py", line 36, in autodetect from google.appengine.api import memcache ImportError: No module named ''google'' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/myuseraccount/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/file_cache.py", line 33, in <module> from oauth2client.contrib.locked_file import LockedFile ImportError: No module named ''oauth2client.contrib.locked_file'' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/myuseraccount/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/file_cache.py", line 37, in <module> from oauth2client.locked_file import LockedFile ImportError: No module named ''oauth2client.locked_file'' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/myuseraccount/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/__init__.py", line 41, in autodetect from . import file_cache File "/Users/myuseraccount/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/file_cache.py", line 41, in <module> ''file_cache is unavailable when using oauth2client >= 4.0.0'') ImportError: file_cache is unavailable when using oauth2client >= 4.0.0

¿Qué está pasando aquí y esto es algo que puedo arreglar? He intentado reinstalar y / o actualizar el paquete de google .


Este error se muestra debido a un conjunto de permisos insuficiente para el archivo credentials.json.

credentials.json no es más que un archivo de credenciales de google. Nombre puede diferir en su sistema.

Simplemente haz chmod 777 ~ / credentials.json

Feliz codificacion !!


Llegué tarde a la fiesta, pero tuve un problema similar hoy y encontré la respuesta here

Solución solo para el error: file_cache is unavailable when using oauth2client >= 4.0.0

Solución:

cambie su discovery.build() para tener el campo cache_discovery=False ie

discover.build(api, version, http=http, cache_discovery=False)

EDITAR :

Como dice @Chronial, esto deshabilitará el caché.

Una solución que no deshabilita el caché se puede encontrar here


Para utilizar la API de Google para el cliente de Python, primero debe instalarla, ya que la API de Google no está integrada en los módulos de Python. La instrucción se encuentra en Instalar la biblioteca .

Instalación

Puede usar un administrador de paquetes o descargar e instalar la biblioteca del cliente de Python manualmente:

Instalación gestionada

Use pip o setuptools para administrar su instalación (es posible que primero deba ejecutar sudo):

pip (preferido):

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

Setuptools: use la herramienta easy_install incluida en el paquete setuptools:

$ easy_install --upgrade google-api-python-client