为何在public.ecr.aws/lambda/python:3.11中pip3装lxml用源码而非manylinux wheel?
为何Lambda Python 3.11环境下pip安装lxml会选择源码而非manylinux wheel?
系统glibc版本不达标:manylinux_2_28标准要求系统glibc版本≥2.28,而
public.ecr.aws/lambda/python:3.11镜像基于Amazon Linux 2,其glibc版本为2.26,不满足该wheel的兼容性要求,因此pip判定该wheel无法使用,转而下载源码编译安装。你测试的Amazon Linux环境应为Amazon Linux 2023,其glibc版本≥2.28,符合manylinux_2_28标准,所以能正常安装该wheel包。pip的兼容性校验逻辑:pip通过PEP 517及auditwheel的规则校验wheel的系统兼容性标签,当检测到当前系统不满足wheel标注的最低依赖版本时,会自动排除该wheel, fallback 到源码发行版。
验证方法:在Lambda镜像中执行以下命令查看glibc版本:
ldd --version
对比Amazon Linux 2023的glibc版本,就能明确差异所在。
内容的提问来源于stack exchange,提问作者Shuzheng
相关产品推荐
相关产品推荐

