Search code examples
pythonaws-lambdaruntimeaws-amplifyapple-m3

Unable to import module 'index': No module named 'pydantic_core._pydantic_core


I'm using amplify to push my lambda. When I run it locally via amplify mock function {functionName} it runs and behaves as expected. When I deploy using amplify push it successfully deploys. However when I attempt to run the lambda from the AWS lambda ui I get the following error message.

{
  "errorMessage": "Unable to import module 'index': No module named 'pydantic_core._pydantic_core'",
  "errorType": "Runtime.ImportModuleError",
  "stackTrace": []
}

My development machine is a mac using the M3 chip. Python is version 3.8.19. I'm stuck and thus far nothing I've been able to find online has resolved my issue.


Solution

  • I ended up having to remove supabase from the lambda itself and spin up a docker container to install a version of supabase with the appropriate wheel and create a zip file containing the dependencies.

    Before zipping, the dependencies need to be in a file structure that follows this pattern: python/lib/python3.9/site-packages

    Then I uploaded the zipped packages as a lambda layer. Which you can do by going to lambdas -> layers -> Add new. Then in the code tab for the relevant lambda you'll need to add the layer.

    Hope this helps!