Lambda can't import the module pyminizip even though its already in the directory

Viewed 25

So I have this similar problem with this person. How to create password encrypted zip file in python through AWS lambda

We have the exact same problem but i already did everything from the answers in that thread but to no avail.

I have a lambda script that runs on python3.9 I need to compress the files in my s3 as a zip file that is password protected and i need to put it in another s3. This is how it goes

import pyminizip
def zip_to_client():
    # reportTitles = os.listdir(tempDir)
    dateGenerated = datetime.now(tz=atz).strftime("%Y-%m-%d")
    pyminizip.compress("Daily_Booking_Report.csv", subfolder + str(dateGenerated) +'/'+str(id)+'/'
                , "/tmp/test.zip", "awesomepassword", 9)
    s3 = boto3.resource('s3')
    s3.meta.client.upload_file(Filename = '/tmp/test.zip', Bucket = bucket, Key = subfolder + 'test.zip', ExtraArgs={'Tagging':'archive=90days'})       
    print("SUCCESS: Transferred report into S3")
 

i'm not sure if it works but i can't debug it because lambda shows me the error:

Response
{
  "errorMessage": "Unable to import module 'lambda_function': No module named 'pyminizip'",
  "errorType": "Runtime.ImportModuleError",
  "requestId": "0000111000",
  "stackTrace": []
}

I made sure that i put import pyminizip as well as pip installing it in the directory. pip install pyminizip -t .

so far this is what the lambda directory looks like https://ibb.co/ZGmLBbv

i've tried everything from putting it in a lambda layer to pip installing different versions from python 3.7 to 3.9

1 Answers
Related