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.

Ojaybee
已提问 2 年前348 查看次数
1 回答
0
已接受的回答

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
已回答 2 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则