Skip to main content
 首页 » 编程设计

python之导入错误 : The _imagingft C module is not installed in alpine-docker

2024年08月16日35qlqwjy

我正在尝试像这样导入和使用 python 枕头库:

from urllib.request import urlopen 
import PIL 
from PIL import Image, ImageFont, ImageDraw 
import re 
image = Image.open(urlopen("http://randomurl.com/randomimage.jpg")) 
draw = ImageDraw.Draw(image) 
font = ImageFont.truetype("sans-serif.ttf", 16) 
draw.text((0, 0),"This is the future liberals want",(255,255,255),font=font) 
image.save('sample-out.jpg') 

但是,我收到以下错误:

/opt/bot/app # python cli.py  
Retrieving column Image ID on worksheet History 
Traceback (most recent call last): 
  File "cli.py", line 38, in <module> 
    font = ImageFont.truetype("sans-serif.ttf", 16) 
  File "/usr/local/lib/python3.7/site-packages/PIL/ImageFont.py", line 260, in truetype 
    return FreeTypeFont(font, size, index, encoding, layout_engine) 
  File "/usr/local/lib/python3.7/site-packages/PIL/ImageFont.py", line 135, in __init__ 
    if core.HAVE_RAQM: 
  File "/usr/local/lib/python3.7/site-packages/PIL/ImageFont.py", line 39, in __getattr__ 
    raise ImportError("The _imagingft C module is not installed") 
ImportError: The _imagingft C module is not installed 

我知道之前在 StackOverflow 上有人问过类似的问题。但是,所有答案似乎都与我不针对的执行环境有关。我在 python:3.7-rc-alpine3.7 docker 图像中运行它,现有的答案不起作用。这是我安装的 pip 和 apk 包:http://dpaste.com/3EBW3A1

请您参考如下方法:

我们需要安装编译器(g++)、TrueType字体渲染库(freetype-dev)和加速基线JPEG压缩解压库(jpeg-dev ) 在 Alpine 平台上编译 pillow。

Dockerfile部分是:

FROM python:3.7-rc-alpine3.7 
RUN apk add --no-cache g++ freetype-dev jpeg-dev 
RUN pip install pillow