Lambda function failing with "cannot import name 'etree' from 'lxml' (/var/task/lxml/__init__.py)"

0

I'm creating a lambda function using a virtual env in Windows 10. I'm adding site-packages to a .zip archive and updating the lambda function.

Currently this is failing with "cannot import name 'etree' from 'lxml' (/var/task/lxml/init.py)"

My venv is using Python 3.8 as is the runtime environment in lambda. Some previous solutions suggest setting runtime on lambda to Python 3.6 but this is no longer an option. I've tried 3.7 and 3.9 but the problem persists. Other solutions on re:Post discuss docker containers rather than zip archives and linux environments rather than windows.

1 Respuesta
0
Respuesta aceptada

I fixed this by spinning up an ec2 machine, creating a directory named python, using pip3 to install the libraries I needed, creating a .zip archive out of the python directory and uplodaing that .zip to s3. From there I could create a layer for aws lambda using the .zip archive.

If you're running into similar problems it may be because you are using Mac OS or Windows to build libraries. Much better to use a Amazon AMI machine to ensure compatibility wiith Lambda.

Ojaybee
respondido hace 2 años

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas