lambda 层中没有可用的 zbar 包

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

尝试为我的 lambda 函数创建一个使用 pyzbar 库的层,该层需要 zbar 共享库作为依赖项,需要单独下载,并且无法使用 pip 安装。我的 Dockerfile 如下所示:

FROM public.ecr.aws/lambda/python:3.8

COPY requirements.txt .
COPY lambda_function.py .

RUN pip install --upgrade pip &&\
    pip install -r requirements.txt &&\
    yum makecache &&\
    yum -y install zbar

CMD [ "lambda_function.lambda_handler"]

我的requirements.txt是这样的

opencv-python-headless
pyzbar
pyzbar[scripts]

我收到错误

没有可用的 zbar 包

当我用许多其他包名称替换“zbar”时,我遇到了同样的错误,例如libzbar0、libzbar-dev、zbar-tools 等

aws-lambda yum zbar amazon-linux epel
3个回答
1
投票

zbar
未包含在默认的 amazon linux 存储库中,因此您需要添加 epel 存储库。

FROM public.ecr.aws/lambda/python:3.8

COPY requirements.txt .
COPY lambda_function.py .

RUN pip install --upgrade pip &&\
    pip install -r requirements.txt &&\
    yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm &&\
    yum makecache &&\
    yum -y install zbar

CMD [ "lambda_function.lambda_handler"]

1
投票

您尝试安装
https://pypi.org/project/pyzbar/ 使用 pip,而不是
https://anaconda.org/conda-forge/pyzbarconda

Pip 非常擅长快速解决纯 python 安装问题。 Conda 解决了一类不同的问题。 在这里,您希望合并来自

zbar
的二进制文件 到你的项目中,并且你表达了一些 对点方法感到沮丧。

使用 conda

environment.yml
文件 将是表达您的要求的自然方式。 它将处理获取适合平台的二进制文件 为您服务,让您无需担心细节。


0
投票

我也有同样的问题,但使用链接

https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
对我来说不起作用[Fedora删除链接:(]。

经过大量搜索后,我在 fedora 人们网站中找到了 EPEL7 的其他链接,它对我有用:

yum -y install https://fedorapeople.org/groups/repos/dchen/epel7-collection/epel-7/x86_64/epel-release-7-5.noarch.rpm
© www.soinside.com 2019 - 2024. All rights reserved.