我基本上正试图运行HelloWorld应用程序,因为我无法解决这个问题。
我的本地Env是Python 3.12.0。我的Lambda函数是Python 3.12.0。。
我遵循了AWS官方文档中的两种方法来创建要加载到Lambda的zip文件。
https://docs.aws.amazon.com/lambda/latest/dg/python-package.html
这个脚本是100%裸露的,在我的本地电脑上运行时没有错误。
脚本:
import openpyxl
import snowflake.connector
import boto3
import pandas as pd
import sys
import json
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
当我试图在Lambda中运行这个作为一个简单的测试时,我会返回以下日志:
[ERROR] AttributeError: module 'os' has no attribute 'add_dll_directory'
Traceback (most recent call last):
File "/var/lang/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1381, in _gcd_import
File "<frozen importlib._bootstrap>", line 1354, in _find_and_load
File "<frozen importlib._bootstrap>", line 1325, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 929, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 994, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/var/task/lambda_function.py", line 1, in <module>
import openpyxl
File "/var/task/openpyxl/__init__.py", line 5, in <module>
from openpyxl.compat.numbers import NUMPY
File "/var/task/openpyxl/compat/__init__.py", line 3, in <module>
from .numbers import NUMERIC_TYPES
File "/var/task/openpyxl/compat/numbers.py", line 9, in <module>
import numpy
File "/var/task/numpy/__init__.py", line 112, in <module>
_delvewheel_patch_1_5_2()
File "/var/task/numpy/__init__.py", line 109, in _delvewheel_patch_1_5_2
os.add_dll_directory(libs_dir)
任何帮助都将不胜感激,因为我正为此失去理智。请注意,当我只安装boto3时,这项功能很好。我的猜测是这个问题与雪花或openpyxl有关。当然,当我推到Lambda时,确切的版本已经安装在我的电脑和虚拟环境上。