Python人脸识别项目中bucket.get_blob()报AttributeError求助
解决Firebase存储桶
get_blob调用的AttributeError问题 错误本质
你碰到的AttributeError: 'function' object has no attribute 'get_blob',根源是代码里的bucket变量不是Firebase Storage的Bucket实例,而是个函数对象。大多是因为获取存储桶时没正确调用初始化方法导致的。
修复方案(无需改动核心业务代码)
你的核心代码blob = bucket.get_blob(f'Images/{id}.png')完全不用改,只需要确保bucket是正确的Bucket实例:
修正Firebase存储初始化代码
按以下流程正确初始化:import firebase_admin from firebase_admin import credentials from firebase_admin import storage # 加载服务账号密钥并初始化应用 cred = credentials.Certificate('你的服务账号密钥路径.json') firebase_admin.initialize_app(cred, { 'storageBucket': '你的存储桶名称.appspot.com' }) # 关键:调用storage.bucket()获取实例,不是直接引用storage.bucket bucket = storage.bucket()排查常见失误
- 别把
storage.bucket(函数本身)赋值给bucket,必须加括号执行storage.bucket()才能拿到可用的Bucket实例。 - 确认
storageBucket配置里的桶名完全正确,默认桶要带.appspot.com后缀。
- 别把
验证修复
调整完初始化代码后,再运行你的核心代码,bucket已经是合法实例,就能正常调用get_blob方法了。
内容的提问来源于stack exchange,提问作者Kaushal Bendre
相关产品推荐
相关产品推荐

