簡體   English   中英

OSError:未找到名為“cairo”的庫

[英]OSError: no library called “cairo” was found

我一直試圖弄清楚為什么只有當我在 docker 容器中運行它時才會收到這個錯誤,但是當我在本地運行我的程序時,它工作正常。 我已經查看了 StackOverflow 上其他類似問題的帖子,但不幸的是,他們似乎都在本地運行他們的程序時遇到了問題,但就我而言,我只是在容器中遇到了問題。

該項目用於創建可用於打印屬性標簽貼紙(二維碼)的文件。 創建的文件是嵌入了圖像的 Word 文檔。 圖像對齊打印在 Avery 標簽紙上。

OSError: no library called "cairo" was found
no library called "libcairo-2" was found
cannot load library 'libcairo.so.2': libcairo.so.2: cannot open shared object file: No such file or directory
cannot load library 'libcairo.2.dylib': libcairo.2.dylib: cannot open shared object file: No such file or directory
cannot load library 'libcairo-2.dll': libcairo-2.dll: cannot open shared object file: No such file or directory

這是我在我的requirements.txt中寫的。 我相當確定這應該安裝我需要的所有依賴項,但它在 docker 容器中不起作用。

cairocffi==1.2.0
CairoSVG==2.5.2
cffi==1.14.5
cssselect2==0.4.1
defusedxml==0.7.1
lxml==4.6.3
Pillow==8.3.0
pycparser==2.20
PyQRCode==1.2.1
python-docx==0.8.11
PyYAML==5.4.1
svgwrite==1.4.1
tinycss2==1.1.0
webencodings==0.5.1

我的問題的解決方案與許多人所描述的完全一樣; libcairo.so2 庫不包含在 python 庫中。 要將其添加到 docker 容器中,您只需像這樣編輯 dockerfile...


FROM python:3.8-slim-buster

ENV PYTHONDONTWRITEBYTECODE=1

ENV PYTHONUNBUFFERED=1

# Install pip requirements
COPY requirements.txt .
RUN python3 -m pip install -r requirements.txt

RUN apt-get update -y
RUN apt-get install -y libcairo2

WORKDIR /app
COPY . /app


CMD ["python3", "insQr2.py"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM