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

Scaleway Serverless函数部署:无法加载numpy依赖求助

解决Scaleway Serverless函数无法加载numpy依赖的问题

核心问题分析

报错No module named 'numpy'说明依赖未被正确打包或安装到部署包中,主要原因可能是插件配置、打包规则或CI环境设置不当。

修复步骤

1. 规范插件安装方式

全局安装Serverless插件易导致版本兼容问题,应将插件添加到项目本地依赖:

  • 更新package.json的devDependencies,添加serverless-python-requirements:
{
    "devDependencies": {
        "serverless-scaleway-functions": "^0.4.3",
        "serverless-python-requirements": "^6.0.0"
    }
}
  • 修改GitLab CI脚本,移除全局插件安装,改用本地安装:
script:
  - echo "Deploying to dev..."
  - npm install -g serverless
  - cd http_function
  - npm install
  - serverless deploy

2. 调整打包规则,确保依赖被包含

serverless-python-requirements默认将依赖安装到.vendor目录,需确保该目录被纳入打包范围:
修改serverless.yaml的package配置:

package:
  patterns:
    - '!node_modules/**'
    - '!.gitignore'
    - '!.git/**'
    - handler.py
    - requirements.txt
    - '.vendor/**'

或者启用插件自动打包功能,在custom.pythonRequirements中添加:

custom:
  pythonRequirements:
    package: true

3. 强制使用Docker打包兼容依赖

Scaleway运行环境为Linux,直接在CI环境安装的依赖可能因系统差异无法兼容,启用Docker打包:
修改serverless.yaml的custom部分:

custom:
  pythonRequirements:
    dockerizePip: true

插件会在Docker容器中模拟目标Python环境安装依赖,确保兼容性。

4. 对齐CI环境与运行时的Python版本

确保CI环境的Python版本与serverless.yaml中指定的python310一致,避免依赖版本不匹配:
在GitLab CI脚本中添加Python 3.10安装步骤:

script:
  - echo "Deploying to dev..."
  - apt-get update && apt-get install -y python3.10 python3.10-venv python3-pip
  - npm install -g serverless
  - cd http_function
  - npm install
  - serverless deploy

5. 验证打包结果

本地执行serverless package,解压生成的部署包,检查.vendor目录下是否存在numpy相关文件,确认依赖已被正确打包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:05:26