"Unable to import module 'lambda_function': cannot import name '_imaging' from 'PIL' (/var/task/PIL/__init__.py)"

0

Hi, I'm facing the above error when I try to use PIL package (Image module) for image conversion functionality in lambda function. I tried different methods like Adding zip folder in Layer and using that layer in lambda function/package PIL library folder along with lambda function then zip it (from new venv). it did not work.my python version 3.10 and lambda function is 3.10. below is sample code. the code works in local but not in AWS console Lambda function. import os import PIL from PIL import Image def lambda_function(event, context): s3_object_name= 'C:/./tiffimage.TIFF' conversion_folder_path = 'C:/.' s3_obj_file_type = str(s3_object_name).split(".")[-1] print(s3_obj_file_type) if s3_obj_file_type == 'TIFF': any_image1 = Image.open(s3_object_name) new_image_1 = any_image1.convert('RGB') new_image_1.save(conversion_folder_path+'/'+'new_converted_tiff8.jpg', 'JPEG')

any suggestion helps!

Raj-1
asked 4 months ago708 views
1 Answer
0

Hi Raj-1,

Did you try to package PIL using these instructions? Note the directory structure in Step 5 for the relative position of dependencies and the function. You can also create the zip file from a venv, shown here.

Hope this helps. Mike

AWS
Mike_E
answered 4 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions