lambd中找不到自制的Python包

2024-05-15 12:53:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用serverless+serverlesspython需求插件将函数部署到AWS。你知道吗

函数正在上使用包要求.txt指向github存储库(它是下载的,我的IDE在我的venv上找到它)。你知道吗

当我推动工件来部署它时,我触发一个使用它的函数,得到一个

Unable to import module '<implementing_function>': No module named '<home-made package>'

如果我从S3下载工件,我会看到directory+内容在那里,我已经检查并重新检查了setup.py__init__.py文件,以确保没有遗漏任何内容。你知道吗

这是为了摆脱传统的git子模块方法。你知道吗

我错过了什么?你知道吗

编辑:这些是工件的内容:

total 192
drwxr-xr-x@ 10 user  staff    320 Nov 21 10:21 Cerberus-1.2.dist-info
drwxr-xr-x@ 11 user  staff    352 Nov 21 10:21 Jinja2-2.10.dist-info
drwxr-xr-x@  8 user  staff    256 Nov 21 10:21 MarkupSafe-1.1.1.dist-info
drwxr-xr-x@  8 user  staff    256 Nov 21 10:21 PyYAML-5.1.2.dist-info
drwxr-xr-x@  7 user  staff    224 Nov 21 10:21 args-0.1.0.dist-info
-rw-r--r--@  1 user  staff   9316 Jan  1  2098 args.py
drwxr-xr-x@ 17 user  staff    544 Nov 21 10:21 bin
drwxr-xr-x@ 15 user  staff    480 Nov 21 10:21 boto3
drwxr-xr-x@  9 user  staff    288 Nov 21 10:21 boto3-1.9.0.dist-info
drwxr-xr-x@ 42 user  staff   1344 Nov 21 10:21 botocore
drwxr-xr-x@  9 user  staff    288 Nov 21 10:21 botocore-1.12.253.dist-info
drwxr-xr-x@  7 user  staff    224 Nov 21 10:21 cached_property-1.5.1.dist-info
-rw-r--r--@  1 user  staff   4277 Jan  1  2098 cached_property.py
drwxr-xr-x@ 10 user  staff    320 Nov 21 10:21 cerberus
drwxr-xr-x@  7 user  staff    224 Nov 21 10:21 certifi
drwxr-xr-x@  9 user  staff    288 Nov 21 10:21 certifi-2019.9.11.dist-info
drwxr-xr-x@ 43 user  staff   1376 Nov 21 10:21 chardet
drwxr-xr-x@ 10 user  staff    320 Nov 21 10:21 chardet-3.0.4.dist-info
drwxr-xr-x@ 11 user  staff    352 Nov 21 10:21 clint
drwxr-xr-x@ 11 user  staff    352 Nov 21 10:21 clint-0.5.1.dist-info
drwxr-xr-x@ 20 user  staff    640 Nov 21 10:21 corporate_ops_utils
drwxr-xr-x@  6 user  staff    192 Nov 21 10:21 corporatebot
drwxr-xr-x@ 14 user  staff    448 Nov 21 10:21 dateutil
drwxr-xr-x@  8 user  staff    256 Nov 21 10:21 docopt-0.6.2.dist-info
-rw-r--r--@  1 user  staff  19946 Jan  1  2098 docopt.py
drwxr-xr-x@ 17 user  staff    544 Nov 21 10:21 docutils
drwxr-xr-x@  8 user  staff    256 Nov 21 10:21 docutils-0.15.2.dist-info
drwxr-xr-x@  8 user  staff    256 Nov 21 10:21 ec2_metadata-2.0.0.dist-info
-rw-r--r--@  1 user  staff   8561 Jan  1  2098 ec2_metadata.py
drwxr-xr-x@ 11 user  staff    352 Nov 21 10:21 idna
drwxr-xr-x@  8 user  staff    256 Nov 21 10:21 idna-2.8.dist-info
drwxr-xr-x@ 30 user  staff    960 Nov 21 10:21 jinja2
drwxr-xr-x@ 11 user  staff    352 Nov 21 10:21 jmespath
drwxr-xr-x@ 10 user  staff    320 Nov 21 10:21 jmespath-0.9.4.dist-info
drwxr-xr-x@  9 user  staff    288 Nov 21 10:21 markupsafe
-rw-r--r--@  1 user  staff    338 Jan  1  1980 ops-slack-bot.iml
drwxr-xr-x@  9 user  staff    288 Nov 21 10:21 python_dateutil-2.8.1.dist-info
drwxr-xr-x@ 21 user  staff    672 Nov 21 10:21 requests
drwxr-xr-x@  8 user  staff    256 Nov 21 10:21 requests-2.22.0.dist-info
-rw-r--r--@  1 user  staff    134 Jan  1  2098 requirements.txt
drwxr-xr-x@ 16 user  staff    512 Nov 21 10:21 s3transfer
drwxr-xr-x@  9 user  staff    288 Nov 21 10:21 s3transfer-0.1.13.dist-info
drwxr-xr-x@  8 user  staff    256 Nov 21 10:21 six-1.13.0.dist-info
-rw-r--r--@  1 user  staff  33045 Jan  1  2098 six.py
drwxr-xr-x@ 16 user  staff    512 Nov 21 10:21 urllib3
drwxr-xr-x@  8 user  staff    256 Nov 21 10:21 urllib3-1.25.7.dist-info
drwxr-xr-x@ 20 user  staff    640 Nov 21 10:21 yaml

我的自定义包位于corporate_ops_utils目录中,包名为corporate-ops-utils。你知道吗

我的函数的入口点/处理程序是corporatebot/backend_operation_message.receive,引发导入错误的文件是corporatebot.backend_operation_message。因为event_receivefrontend_operation_message_receive不使用这个定制包,所以它们可以正常工作。你知道吗

serverless.yml中,定义了三个函数:

functions:
  event_receive:
    handler: corporatebot/event.receive
    timeout: 3 # optional, in seconds, default is 6
    memorySize: 128
    events:
      - http:
          path: event/receive
          method: post
          cors: true
  frontend_operation_message_receive:
    handler: corporatebot/frontend_operation_message.receive
    timeout: 30 # optional, in seconds, default is 6
    memorySize: 128
  backend_operation_message_receive:
    handler: corporatebot/backend_operation_message.receive
    timeout: 30 # optional, in seconds, default is 6
    memorySize: 128

Tags: 函数pyinfomessagedistoperationnovjan