google api python客户端示例代码给出';模块对象没有属性套接字';
尝试从google api python客户端中激活示例代码时,我遇到以下错误:“\u webapp25.py:464]“module”对象没有属性“socket”。 代码是:google api python客户端示例代码给出';模块对象没有属性套接字';,python,google-api,google-api-client,google-api-python-client,Python,Google Api,Google Api Client,Google Api Python Client,尝试从google api python客户端中激活示例代码时,我遇到以下错误:“\u webapp25.py:464]“module”对象没有属性“socket”。 代码是: from apiclient.ext.file import Storage from apiclient.discovery import build from apiclient.ext.authtools import run from oauth2client.client import OAuth2WebSer
from apiclient.ext.file import Storage
from apiclient.discovery import build
from apiclient.ext.authtools import run
from oauth2client.client import OAuth2WebServerFlow
FLOW = OAuth2WebServerFlow(
client_id='SOME_CLIENT_ID',
client_secret='SOME_CLIENT_SECRET',
scope='https://www.googleapis.com/auth/latitude.current.best',
user_agent='lati-go/1.0')
storage = Storage('moderator.dat')
credentials = storage.get()
if credentials is None or credentials.invalid == True:
credentials = run(FLOW, storage)
http = httplib2.Http(cache=".cache")
http = credentials.authorize(http)
service = build("latitude", "v1", http = http)
data = service.currentLocation().get()
给出错误的代码是credentials=run(流、存储)。
回溯是:
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\_webapp25.py", line 701, in __call__
handler.get(*groups)
File "H:\cproj\workspace\latitudeReminder\src\lati.py", line 31, in get
credentials = run(FLOW, storage)
File "H:\cproj\workspace\latitudeReminder\src\apiclient\ext\authtools.py", line 116, in run
ClientRedirectHandler)
File "C:\Python27\lib\SocketServer.py", line 405, in __init__
self.socket = socket.socket(self.address_family,
AttributeError: 'module' object has no attribute 'socket'
我做错了什么?发布回溯会很有用-这总是有用的信息 我猜您的问题在于,您发布的示例是针对命令行应用程序的,但您试图将其用于web服务器身份验证流。尝试从
oauth2client.tools
导入run