尝试为我的 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 等
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"]
您尝试安装
https://pypi.org/project/pyzbar/ 使用 pip,而不是
https://anaconda.org/conda-forge/pyzbar 与 conda。
Pip 非常擅长快速解决纯 python 安装问题。 Conda 解决了一类不同的问题。 在这里,您希望合并来自
zbar
的二进制文件
到你的项目中,并且你表达了一些
对点方法感到沮丧。
使用 conda
environment.yml
文件
将是表达您的要求的自然方式。
它将处理获取适合平台的二进制文件
为您服务,让您无需担心细节。
我也有同样的问题,但使用链接
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