2016-02-18 23 views
5

Google API'leri öğrenmeye çalışıyorum ve deneyimlerim Python ile yapıldı, bu yüzden google hizmetlerinin bir kısmına erişmek için google API python istemcisini kullanmaya çalışıyorum ancak hizmet nesnesini oluşturan bir hatayla karşılaşıyorum.Python google api

apiclient.discovery gelen yapı modülünü ithal hiçbir problem var:

>>> from apiclient.discovery import build 
>>> 

Ama (ben indirilen öğretici dosyasında yapılan gibi) hizmet nesnesi oluşturmak için zamanı geldiğinde, bir şey çöküyor ve elimden Neyin yanlış gittiğini anlamıyorum!

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

Burada yararlı olur ben durumda bu noktaya nasıl açıklanmıştır: Google API Python Installation: Ben istemci kitaplığı ve burada özetlenen gibi bağlıydı tüm diğer modülleri takarak başladı. Pip (ve gerekli sudo) kullandım ve her şey yüzmeye gitti. Ben hataları pip '--update argümanı ile güncelleyerek hatamı tamir çalıştım ama hepsi "Gereksinim zaten güncel: {Modül Belgesi Adı Burada}} bu yüzden sorun olduğuna inanmıyorum.

Bundan sonra, eğiticiyi takip etmeye başladım. Eğiticide, google kitaplarla arayüz oluşturmaya örnek API (bu bana sorun veriyor) veriyor: Google Books Example. Eğiticinin başlangıcında belirtildiği şekilde google'dan bir API geliştirici anahtarı aldım ve hizmet nesnesini bile çalıştırmama gibi bir sorun olduğuna inanmıyorum.

Hatayı inceledim, ancak benzer sorunları olan kimseyi göremedim, bu yüzden burada insanların yardımcı olabileceğini umuyorum! Eğer izinleri ile sorun var gibi

sayesinde

MLP

cevap

0
IOError: [Errno 13] Permission denied 

görünüyor. burada chown 'username' 'python file'

Ya chown -R 'username' 'directory name'

+0

Ben sadece chown (dosya/dizin üzerinde api değil, modüllerle veya herhangi bir şeyle değil) çalıştı ancak aynı hatayı aldım :(python dosyası şu şekilde çalışıyor: "-rw-r - r-- 1 mlp personel 2271 Feb 18 00:54 GoogleBooksExample.py", ve burada geri çekilmeden hemen önce bahsettikleri modülün izinleri "-rw- r - r-- 1 kök tekerleği 36583 14 Temmuz 2015 ssl.py " – MLP

+1

@MLP ve komut dosyası yönetici ayrıcalıklarıyla çalıştırılırsa ne işe yarar? – noise

5

aynı yapın, o da ben github açık bir sorun bulduk

>>> from oauth2client.locked_file import LockedFile  
    Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    ImportError: No module named locked_file 

2,0 oauth2client bir LockedFile olmadığını görünüyor. Bu bir google-api-python-client hatası: https://github.com/google/google-api-python-client/issues/179

+1

sadece ana dalda giderildi – patroqueeet