You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Firebase Node.js函数调用Python脚本遇ModuleNotFoundError问题

解决Firebase Functions调用Python脚本找不到rembg模块的问题

核心问题分析

你用Node.js的PythonShell调用Python脚本时,Firebase默认不会自动处理Python依赖(requirements.txt仅对Python类型的Function生效),且云端环境的Python路径和依赖位置需要明确指定。


具体解决步骤

1. 确认requirements.txt的正确性

  • 确保文件和app.py、index.js在同一个functions目录下
  • 文件内容必须包含rembg,如果需要指定版本可以写:
    rembg==2.0.53
    # 若rembg依赖其他包(如torch),也需要一并列出,比如:
    torch==2.0.1
    

2. 部署前自动安装Python依赖

云端环境每次部署都会重置,手动在GCP Shell安装的依赖不会保留,必须通过部署脚本自动安装:

  • 在functions/package.json的scripts中添加预处理命令:
    "scripts": {
      "predeploy": "pip3 install -r requirements.txt --target=./.python_env",
      "deploy": "firebase deploy --only functions"
    }
    
  • 之后用npm run deploy命令部署,而非直接firebase deploy,这样会先把依赖安装到functions/.python_env目录下

3. 调整PythonShell的调用参数

在index.js中调用PythonShell时,指定Python3路径并配置依赖查找路径:

const { PythonShell } = require('python-shell');

const runPythonScript = async () => {
  const options = {
    // 指定云端的Python3路径
    pythonPath: '/usr/bin/python3',
    // 设置PYTHONPATH指向我们安装的依赖目录(替换成实际的Python版本,比如3.9)
    env: {
      PYTHONPATH: `${__dirname}/.python_env/lib/python3.9/site-packages`
    }
  };

  return new Promise((resolve, reject) => {
    PythonShell.run('app.py', options, (err, results) => {
      if (err) reject(err);
      resolve(results);
    });
  });
};

4. 备选:在Python脚本中手动添加依赖路径

如果上面的环境变量配置不生效,可以在app.py开头添加:

import sys
# 替换成实际的依赖安装路径,可通过部署后在GCP日志打印sys.path确认
sys.path.append('./.python_env/lib/python3.9/site-packages')

# 之后再导入rembg
from rembg import remove

5. 验证云端Python版本

可以在函数中添加调试代码,打印当前Python版本和路径,确认依赖安装路径是否匹配:
在index.js中添加:

const { execSync } = require('child_process');
console.log('Python3版本:', execSync('/usr/bin/python3 --version').toString());
console.log('Python3 site-packages路径:', execSync('/usr/bin/python3 -c "import site; print(site.getsitepackages())"').toString());

部署后查看GCP控制台日志,得到实际的site-packages路径,再调整上面的配置


内容的提问来源于stack exchange,提问作者Finn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 04:37:31