Sto cercando di imparare le API di google e la mia esperienza è con Python, quindi sto cercando di usare il client python di api per accedere ad alcuni dei servizi di google, ma sto riscontrando un errore nella creazione dell'oggetto servizio.Python google api
Non c'è nessun problema importando il modulo di compilazione da apiclient.discovery:
>>> from apiclient.discovery import build
>>>
Ma quando arriva il momento di costruire l'oggetto servizio (come fatto nel file tutorial che ho scaricato), qualcosa si blocca e posso capisco cosa sta andando storto!
>>> service = build('books','v1',developerKey=api_key)
WARNING:root:No module named locked_file
Traceback (most recent call last):
File "build/bdist.macosx-10.10-intel/egg/googleapiclient/discovery_cache/__init__.py", line 38, in autodetect
from . import file_cache
File "build/bdist.macosx-10.10-intel/egg/googleapiclient/discovery_cache/file_cache.py", line 32, in <module>
ImportError: No module named locked_file
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "build/bdist.macosx-10.10-intel/egg/oauth2client/util.py", line 140, in positional_wrapper
File "build/bdist.macosx-10.10-intel/egg/googleapiclient/discovery.py", line 196, in build
File "build/bdist.macosx-10.10-intel/egg/googleapiclient/discovery.py", line 242, in _retrieve_discovery_doc
File "/Library/Python/2.7/site-packages/httplib2-0.9.2-py2.7.egg/httplib2/__init__.py", line 1609, in request
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/Library/Python/2.7/site-packages/httplib2-0.9.2-py2.7.egg/httplib2/__init__.py", line 1351, in _request
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
File "/Library/Python/2.7/site-packages/httplib2-0.9.2-py2.7.egg/httplib2/__init__.py", line 1272, in _conn_request
conn.connect()
File "/Library/Python/2.7/site-packages/httplib2-0.9.2-py2.7.egg/httplib2/__init__.py", line 1036, in connect
self.disable_ssl_certificate_validation, self.ca_certs)
File "/Library/Python/2.7/site-packages/httplib2-0.9.2-py2.7.egg/httplib2/__init__.py", line 80, in _ssl_wrap_socket
cert_reqs=cert_reqs, ca_certs=ca_certs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 911, in wrap_socket
ciphers=ciphers)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 520, in __init__
self._context.load_verify_locations(ca_certs)
IOError: [Errno 13] Permission denied
>>>
Ecco come sono arrivato a questo punto nel caso in cui è utile: ho cominciato con l'installazione della libreria client e tutti gli altri moduli che dipendeva da come descritto qui: Google API Python Installation. Ho usato pip (e il necessario sudo) e tutto è andato bene. Ho provato a correggere il mio errore aggiornando i moduli con l'argomento --update di pip ma questo non sembra essere il problema dato che tutti dicono "Requisito già aggiornato: {Nome del documento modulo qui}" quindi non credo che sia questo il problema
Successivamente ho iniziato a seguire il tutorial. Nel tutorial, fornisce l'API di esempio (che mi dà problemi) per interfacciare con Google Books: Google Books Example. Ho ricevuto una chiave sviluppatore API da google come delineato all'inizio del tutorial e non credo che questo sia il problema perché non eseguo nemmeno l'oggetto servizio.
Ho cercato l'errore ma non ho visto nessuno con problemi simili, quindi spero che le persone qui possano aiutarti!
Grazie,
MLP
Ho appena provato chown (sul file/dir con l'api giusto? Non sui moduli o altro?) Ma ho ottenuto lo stesso errore :(ecco i permessi per il file python è in esecuzione da: "-rw-r - r-- 1 mlp staff 2271 Feb 18 00:54 GoogleBooksExample.py", e qui ci sono i permessi per il modulo menzionato immediatamente prima nel traceback "-rw- r - r-- 1 root wheel 36583 lug 14 2015 ssl.py " – MLP
@ MLP e cosa succede se esegui lo script con privilegi di amministratore? Funzionerebbe? – noise