Firebase Python云函数多文件导入失败及Manifest版本错误问题
Firebase Python云函数多文件部署问题解决方案
一、修复构建规范版本错误
出现FirebaseError Expect manifest yaml to specify a version number是因为缺少指定版本的构建清单文件。在functions目录下创建firebase-functions.yaml,内容如下:
specVersion: 'v1' runtime: python311 # 替换为你实际使用的Python版本,如python310、python312
若已有该文件,确保specVersion字段存在且值为v1或更高有效版本。
二、解决自定义模块导入错误(ModuleNotFoundError)
Firebase部署Python函数时,默认不会自动识别同目录下的自定义模块,可通过以下三种方式解决:
方式1:使用相对导入
修改main.py中的导入语句为相对导入:
# main.py from .testclass import Test # 调用Test类方法示例 test_obj = Test() test_obj.your_method()
方式2:配置PYTHONPATH环境变量
在firebase-functions.yaml中添加环境变量,将当前函数目录加入Python路径:
specVersion: 'v1' runtime: python311 env: - name: PYTHONPATH value: "/workspace"
方式3:用setup.py打包模块(适合多模块复杂项目)
在functions目录下创建setup.py:
from setuptools import setup, find_packages setup( name="function-package", version="0.1", packages=find_packages(), )
然后在requirements.txt中添加本地包引用:
-e .
此时main.py可直接使用绝对导入:from testclass import Test。
三、标准项目结构示例
your-project/ ├── firebase.json └── functions/ ├── main.py ├── testclass.py ├── firebase-functions.yaml ├── requirements.txt └── setup.py # 可选,复杂项目使用
四、部署前检查与执行
- 确保
requirements.txt包含所有依赖(包括LangChain):
Flask firebase-functions langchain # 其他所需依赖
- 执行部署命令:
firebase deploy --only functions
内容的提问来源于stack exchange,提问作者Ricardo
相关产品推荐
相关产品推荐

