在Python中,尝试在AWS lambda层中运行opencv包。使用 opencv-python-headless 但不断收到此错误。
Response
{
"errorMessage": "Unable to import module 'lambda_function': /lib64/libz.so.1: version `ZLIB_1.2.9' not found (required by /opt/python/lib/python3.8/site-packages/cv2/../opencv_python_headless.libs/libpng16-186fce2e.so.16.37.0)",
"errorType": "Runtime.ImportModuleError",
"stackTrace": []
}
尝试过不同版本的opencv均无济于事。以及不同版本的Python。
我遇到了和你一样的问题。此问题仅在最新更新 openCV (4.7.0.68) 后出现。返回到之前的版本 4.6.0.66 解决了我的问题:
pip install opencv-python-headless==4.6.0.66
这是新更新的已知问题。有关更多信息,请参阅此 github 问题:https://github.com/opencv/opencv-python/issues/772
您可以创建图层或只是(如果制作图层不是必需的)-
使用
pip install opencv-contrib-python -t .
在 lambda 代码所在的同一目录中安装必要的库(。表示当前目录,如果需要,请更改)。
下载所有库后,将它们(与 lambda 一起)压缩并存储在
s3 bucket
上。然后只需从该 zip 文件中获取 lambda 就可以了。
最美好的祝愿。
在您的
requirements.txt
文件中,您可能没有为 opencv-python-headless
指定特定版本 - 因此,每次您部署新映像时,它都会安装最新的映像。而且...猜猜看...最新版本是两周前发布的 - 它似乎与您的环境不兼容。所以:
Always
指定您正在使用的具体版本。