我正在尝试添加snowflake-connector-python
版本2.7.9作为aws lambda中的层。我收到这个错误Unable to import module lambda_function: /lib64/libc.so.6: version GLIBC_2.28 not found (required by /opt/python/lib/python3.9/site-packages/cryptography/hazmat/bindings/_rust.abi3.so)
我尝试过的步骤docker run -v /Users/local/Documents/docker_test:/working -it --rm ubuntu
一进去我就试过
apt-get update
- 然后使用链接
https://exchangetuts.com/how-to-install-python39-on-linux-ubuntu-terminal-1639972230035814
安装python 3.9 apt install python3-virtualenv
- 虚拟雪花测试
- 源雪花_测试/bin/activate
- python3——版本
- sudo apt安装python3pip
- python3-m pip3安装--升级pip
- sudo apt-get-install-y libssl-dev libffi-dev
- mkdir-p lambda_layers/python/lib/python3.9/site-packages
- cd lambda_layers/python/lib/python3.9/site-packages
- pip3安装雪花连接器python==2.7.9-t
然后压缩/python/lib/python3.9/site-packages
内容并在aws中创建一个层。而i函数是简单的
import json
import snowflake.connector
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
我不得不做的一些事情来得到这个错误
- 我必须安装cffi,因为我正在获得
No module named '_cffi_backend'
- 必须删除cyrptography依赖性,因为我有版本36,然后重新安装以获得38
- python3virtualenv似乎也安装了python 3.10.x版本。因此docker镜像同时具有python 3.10和3.9。Snowflake医生说它只适用于3.9我将添加的别名更改为
python
,将python3
更改为指向python3.9
如何修复此错误/lib64/libc.so.6: version GLIBC_2.28
?
我也遇到了类似的问题,不得不在lambda层中指定一个较旧的加密版本(pip-install cryptography=3.4.8(。对我来说,这解决了问题,希望这也能帮助你!