OpenCV - AWS Lambda - /lib64/libz.so.1:找不到版本“ZLIB_1.2.9”

问题描述 投票:0回答:5

在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。

python amazon-web-services lambda aws-lambda
5个回答
7
投票

我遇到了和你一样的问题。此问题仅在最新更新 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


2
投票

您可以创建图层或只是(如果制作图层不是必需的)-

  • 使用

    pip install opencv-contrib-python -t .
    在 lambda 代码所在的同一目录中安装必要的库(。表示当前目录,如果需要,请更改)。

  • 下载所有库后,将它们(与 lambda 一起)压缩并存储在

    s3 bucket
    上。然后只需从该 zip 文件中获取 lambda 就可以了。

最美好的祝愿。


0
投票

0
投票

在您的

requirements.txt
文件中,您可能没有为
opencv-python-headless
指定特定版本 - 因此,每次您部署新映像时,它都会安装最新的映像。而且...猜猜看...最新版本是两周前发布的 - 它似乎与您的环境不兼容。所以:

  1. Always
    指定您正在使用的具体版本。
  2. 按照@job-heersink的建议指定版本4.6.0.66。

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.