迁移至Python 2.10后调用Google Photos API batchCreate遇TimeoutError求助
首先纠正个小问题:Python没有2.10版本,应该是你笔误,实际是迁移到Python3.10对吧?
针对你遇到的Google Photos API批量创建超时问题,给你几个修复方向:
更新Google API客户端库
旧版本的google-api-python-client在Python3.10下可能存在兼容性问题,直接升级到最新稳定版:pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib手动设置API调用超时
客户端库默认的超时设置可能偏短,给execute()方法加上超时参数,比如设置30秒(可根据实际情况调整):response = gphotos.mediaItems().batchCreate(body=body).execute(timeout=30)检查网络代理配置
虽然requests.post能正常请求,但Google API客户端库的网络配置可能和requests不一致。如果你的环境需要代理,得给客户端库单独配置:import httplib2 from googleapiclient.discovery import build # 替换成你的代理地址和端口 proxy_info = httplib2.ProxyInfo(httplib2.socks.PROXY_TYPE_HTTP, '你的代理主机', 代理端口) http = httplib2.Http(proxy_info=proxy_info) # 重新构建gphotos客户端 gphotos = build('photoslibrary', 'v1', http=http, credentials=你的认证信息)拆分批量请求
如果batchCreate的请求体里包含太多媒体项,可能会因为数据量过大导致超时。试试减少单次批量的数量,拆分多次请求。检查API配额和权限
登录Google Cloud Console,检查Photos Library API的配额是否用尽,有没有触发限流。另外确认你的认证凭据是否拥有photoslibrary.append等必要权限。
内容的提问来源于stack exchange,提问作者LA_
相关产品推荐
相关产品推荐

