我想使用 Pillow 垂直书写文字。 源代码如下。
from PIL import Image, ImageDraw
img = Image.new("RGB", (30, 30), (255, 255, 255))
draw = ImageDraw.Draw(img)
draw.text((0, 0), "ab", (0, 0, 0), direction="ttb")
img.save("test.png", "png")
当我运行此源代码时,出现以下错误:
KeyError: 'setting text direction, language or font features is not supported without libraqm'
我的环境:
Windows 11
Python 3.8.10
Pillow 10.4.0
我发现了这个问题。
如何使用libraqm安装预构建的枕轮Windows 上的 DLL?
但是
https://www.lfd.uci.edu/%7Egohlke/pythonlibs/#pillow
已损坏。
我安装了
vcpkg
,然后又安装了
libraqm
我将
%mydirectory%\vcpkg\installed\x64-windows\lib
和
%mydirectory%\vcpkg\installed\x64-windows\bin
设置为环境变量Path。
但是我的源代码不起作用。
谢谢。
找不到预构建的 libraqm DLL?试试这些方法
遇到了 Pillow 在 Windows 上缺少 libraqm 支持的问题,导致无法垂直书写文字。 虽然尝试了多种方法,但仍然无法解决。让我们逐步排查并解决这个问题。
1. 确认 Pillow 是否正确链接 libraqm
即使已将 libraqm 的 bin 和 lib 目录添加到 PATH 中,Pillow 在构建时也可能没有正确链接到它。可以尝试重新安装 Pillow,并确保在安装过程中可以找到 libraqm。
打开一个新的命令提示符或 PowerShell 窗口,确保环境变量已更新,然后运行:
pip uninstall pillow
pip install --force-reinstall pillow
这将强制 Pillow 重新安装,并尝试链接系统上的 libraqm 库。
2. 使用预构建的 Pillow Wheel (如果可用)
虽然提到的链接
https://www.lfd.uci.edu/%7Egohlke/pythonlibs/#pillow
目前可能不可用,但可以尝试访问以下链接查找预构建的 Pillow wheels,其中可能包含 libraqm 支持:
在这些网站上,找到与的 Python 版本和系统架构(32 位或 64 位)匹配的 Pillow wheel 文件(例如
Pillow‑10.4.0‑cp38‑cp38‑win_amd64.whl
)。 下载 wheel 文件后,使用 pip 安装:
pip install Pillow‑10.4.0‑cp38‑cp38‑win_amd64.whl
3. 手动构建 Pillow
如果以上方法都不可行,可以尝试手动构建 Pillow。 这需要一些额外步骤,但可以确保 libraqm 正确链接。
- 确保已安装必要的构建工具,例如 Visual Studio Build Tools 或 MinGW。
- 从 https://github.com/python-pillow/Pillow 下载 Pillow 的源代码。
- 解压缩源代码,并使用命令提示符或 PowerShell 进入解压后的目录。
- 设置环境变量,让 Pillow 在构建过程中找到 libraqm。 例如:
set INCLUDE=%INCLUDE%;<libraqm_include_path>
set LIB=%LIB%;<libraqm_lib_path>
将
<libraqm_include_path>
和
<libraqm_lib_path>
替换为 libraqm 安装目录下的
include
和
lib
文件夹的实际路径。
- 运行以下命令构建并安装 Pillow:
python setup.py build_ext --inplace
python setup.py install
这应该可以构建并安装包含 libraqm 支持的 Pillow 版本。
4. 检查其他问题
如果问题仍然存在,请检查以下内容:
- 确保的代码中没有其他错误。 尝试使用其他文本方向或字体功能,看看是否出现相同的错误。
- 检查 Pillow 的 GitHub 存储库或 Stack Overflow,看看是否有人报告了类似的问题。
希望这些步骤可以帮助解决问题。 如果还有其他问题,请随时提问!
标签:python From: 78805927