【问题标题】:serverless aws python lambda unable to import module from parent directory无服务器 aws python lambda 无法从父目录导入模块
【发布时间】:2021-07-19 20:54:36
【问题描述】:

我有以下结构

我正在尝试在 handler.py 中导入 utils

我试着给喜欢

from src.utils import *
from utils import *

也尝试添加

import os
import sys

sys.path.append(os.path.dirname(os.path.realpath(__file__)))

import os
    import sys
    
    sys.path.append('src')

但没有任何效果

我正在使用无服务器框架而不是手动上传 zip 文件

尝试了很多,但没有任何效果......

任何帮助, 高度赞赏。

谢谢

【问题讨论】:

  • 这令人困惑,因为根据您提供的内容,这似乎是正确的,您是否在某处有错字?或者您在哪里看到导入错误是在您部署到环境时还是从 IDE 中看到您无法从 utils 访问任何内容?
  • 摆脱 src 目录并将你的 python 脚本移动到根目录。 aws.amazon.com/premiumsupport/knowledge-center/…

标签: python aws-lambda serverless-framework


【解决方案1】:

您可以安装serverless-functions-base-path插件并使用。

在此处查看插件指南https://www.serverless.com/plugins/serverless-functions-base-path

如果您的 serverless.yml 文件和 src 在目录中,您可以将其添加到您的 serverless.yml 文件并尝试部署

custom:
  functionsBasePath: src

plugins:
  - serverless-functions-base-path

【讨论】:

    【解决方案2】:

    您可以为此使用 serverless-python-requirements 插件。

    它可以安装在本地或管道上

    sls plugin install -n serverless-python-requirements 
    

    您可以将其添加到您的 serverless.yml 文件并尝试部署

    # this part might not be needed depending on size of utils
    custom:
      pythonRequirements:
        zip: true
    
    # This plugin allows us import dependencies
    plugins:
      - serverless-python-requirements
    

    在此处查看插件指南

    https://www.serverless.com/blog/serverless-python-packaging

    https://www.npmjs.com/package/serverless-python-requirements

    【讨论】:

      猜你喜欢
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      相关资源
      最近更新 更多