AWS Lambda 对于 Python 版本 3.10.11 给出错误

问题描述 投票:0回答:1

我在Windows 10中创建了lambda_function.py文件。我在Windows中使用Python版本:3.10.11。 当我在 Windows 10 中运行脚本时,它可以正常工作,但是当运行 AWS Lambda 时,我在以下行收到错误:

import pandas as pd

Windows 10 日志

(io_script) E:\env\abc\io_script\Scripts>python --version
Python 3.10.11

AWS Lambda 日志:AWS Lambda python 版本是 3.10

[ERROR] AttributeError: module 'os' has no attribute 'add_dll_directory'
Traceback (most recent call last):
  File "/var/lang/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/var/task/lambda_function.py", line 4, in <module>
    import pandas as pd
  File "/var/task/pandas/__init__.py", line 12, in <module>
    _delvewheel_patch_1_5_4()
  File "/var/task/pandas/__init__.py", line 9, in _delvewheel_patch_1_5_4
    os.add_dll_directory(libs_dir)INIT_REPORT Init Duration: 433.15 ms  Phase: init Status: error   Error Type: Runtime.Unknown
INIT_REPORT Init Duration: 3141.57 ms   Phase: invoke   Status: timeout
START RequestId: f19a6b90-0b68-4824-b13c-2f64a1c98969 Version: $LATEST
2024-07-02T16:53:26.432Z f19a6b90-0b68-4824-b13c-2f64a1c98969 Task timed out after 3.20 seconds

lambda_function.py

import requests
import json
import math
import pandas as pd
from pandas import json_normalize #New
import datetime
from datetime import date
from pytz import timezone
from datetime import timedelta
from datetime import datetime
import numpy as np
from sqlalchemy import create_engine
import pymysql

def lambda_handler(event, context):
    print('hi')
python-3.x pandas amazon-web-services aws-lambda
1个回答
0
投票

AWS Lambda 在 Amazon Linux(源自 RedHat)上运行。 您将无法在 Lambda 运行时中使用特定于 Windows 的功能。

add_dll_directory
仅适用于 Windows,不存在于 Linux 的 python 发行版上。

使用WSL之类的工具在 Lambda 运行时之外开发和测试您的代码。

© www.soinside.com 2019 - 2024. All rights reserved.