📌  相关文章
📜  Runtime.ImportModuleError: Unable to import module 'lambda_function': libGL.so.1: cannot open shared object file: No such file or directory - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:47:10.131000             🧑  作者: Mango

Runtime.ImportModuleError: Unable to import module 'lambda_function': libGL.so.1: cannot open shared object file: No such file or directory - Shell-Bash

如果你在部署AWS Lambda函数时遇到了这个错误,那么你正处于需要解决它的境地。本文将介绍如何解决'libGL.so.1'缺失导致无法导入lambda函数模块的问题。

问题分析

当你的Lambda函数依赖于需要GL库支持的依赖包时,你的部署容器(usually an Amazon Linux instance)就需要安装对应的GL libraries。如果缺乏这些库,你将会得到上述错误信息。

解决方案

有两种方法可以解决这个问题:

方法一:直接将缺少的依赖库打包到你的lambda代码

将lambda函数的依赖库一并打包部署即可,例如:

example-lambda/
  lambda_function.py
  lib/
    libGL.so.1
  requirements.txt

在Python中使用依赖库时,需要使用LD_PRELOAD指令指定GL库的路径:

export LD_LIBRARY_PATH=$PWD/lib
export LD_PRELOAD=$PWD/lib/libGL.so.1
python lambda_function.py
方法二:在Amazon Linux AMI环境中安装缺少的依赖库

在Amazon Linux AMI环境中,通过以下命令安装GL库:

sudo yum -y install libGL.so.1

此命令将在Amazon Linux AMI上安装对应的GL库,确保支持lambda函数的运行。

结论

在部署lambda函数时缺少依赖库可能导致无法导入模块的错误。通过将缺失的依赖库打包到lambda代码或在Amazon Linux AMI中安装缺少的依赖库两种方法解决此问题。

希望这个解决方案对你有帮助!