I'm facing an issue that os does not have an add_dll_directory attribute in the AWS lambda function on the trigger. I have written code for creating a thumbnail of a video and I have tried it locally that's working fine but when I upload this function with the required libraries then I get this issue and still, I'm unable to resolve it. I did not get any help from the internet yet regarding this issue. that is an issue that I'm facing [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 2, in <module> import cv2 File "/var/task/cv2/__init__.py", line 11, 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) This is the code that I'm using for creating a thumbnail import json import cv2 import tempfile from PIL import Image from io import BytesIO import boto3 s3 = boto3.client('s3') def get_video_file(bucket, key): video_file = s3.get_object(Bucket=bucket, Key=key)['Body'].read() return video_file def upload_image_file(image_byte_data, bucket, key): s3.put_object(Bucket=bucket, Key=key, Body=image_byte_data, ContentType="image/png") def generate_thumbnail(video_byte_data): with tempfile.NamedTemporaryFile(suffix=".mp4", delete=False) as temp_file: temp_file_path = temp_file.name temp_file.write(video_byte_data) video_capture = cv2.VideoCapture(temp_file_path, cv2.CAP_ANY) success, frame = video_capture.read() if success: frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) thumbnail_image = Image.fromarray(frame_rgb) thumbnail_size = (320,320) thumbnail_image.resize(thumbnail_size) thumbnail_data = BytesIO() thumbnail_image.save(thumbnail_data, format='PNG') thumbnail_bytes = thumbnail_data.getvalue() return thumbnail_bytes else: raise ValueError('Unable to read video frame') def lambda_handler(event, context): bucket = event['Records'][0]['s3']['bucket']['name'] key = event['Records'][0]['s3']['object']['key'] video_file = get_video_file(bucket, key) image_output_file = generate_thumbnail(video_file) upload_image_file(image_output_file, "thumbnail876", key.split(".")[0]+".png") return { "statusCode": 200, "body": json.dumps( { "message": "hello world", } ), } Please can someone tell me why I'm facing this issue? and how can I resolve this? Thanks Continue reading...