无服务器AWS python Lambda无法从父目录导入模块

时间:2020-09-17 13:30:04

标签: python aws-lambda serverless-framework

我有以下结构

enter image description here

我正在尝试在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文件

尝试了很多,但是没有用...

任何帮助, 高度赞赏。

谢谢

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您可以为此使用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