首页 > 编程问答 >Windows 上预构建的 libraqm DLL 在哪里?

Windows 上预构建的 libraqm DLL 在哪里?

时间:2024-07-30 05:14:35浏览次数:9  
标签:python

我想使用 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 正确链接。

  1. 确保已安装必要的构建工具,例如 Visual Studio Build Tools 或 MinGW。
  2. https://github.com/python-pillow/Pillow 下载 Pillow 的源代码。
  3. 解压缩源代码,并使用命令提示符或 PowerShell 进入解压后的目录。
  4. 设置环境变量,让 Pillow 在构建过程中找到 libraqm。 例如:
set INCLUDE=%INCLUDE%;<libraqm_include_path>
set LIB=%LIB%;<libraqm_lib_path>

<libraqm_include_path> <libraqm_lib_path> 替换为 libraqm 安装目录下的 include lib 文件夹的实际路径。

  1. 运行以下命令构建并安装 Pillow:
python setup.py build_ext --inplace
python setup.py install

这应该可以构建并安装包含 libraqm 支持的 Pillow 版本。

4. 检查其他问题

如果问题仍然存在,请检查以下内容:

  • 确保的代码中没有其他错误。 尝试使用其他文本方向或字体功能,看看是否出现相同的错误。
  • 检查 Pillow 的 GitHub 存储库或 Stack Overflow,看看是否有人报告了类似的问题。

希望这些步骤可以帮助解决问题。 如果还有其他问题,请随时提问!

标签:python
From: 78805927

相关文章

  • Robin-Stocks Python 中的 order_buy_fractional_by_price 问题
    我在Robin-StocksPython包中的order_buy_fractional_by_price函数中遇到问题。在正常市场交易时间内下达以美元为基础的买入订单时,该订单被错误地设置为限价订单。对我来说看起来有问题的代码似乎是导致此问题的原因。我尝试在包管理器中本地修改或删除有问题的代码,但遇......
  • 在python中使用turtle绘制图案(带点)
    我正在尝试使用python中的海龟制作一幅赫斯特画(点图案)。我设法实现了它。Hirst_painting_dot_pattern但是我的for循环没有按照我预期的方式工作。它省略了最后一次迭代。在下面的代码中,我的for循环没有生成最后一个点。因此,我在循环末尾添加了一行来制作最后......
  • 使用 Python 进行 QuantLib Vanilla 掉期定价 - 错误
    我真的需要帮助...我有一个使用QuantLib构建自己的VanillaSwapPricer的项目。我想根据ois掉期的市场价格进行计算以进行贴现,并根据Euribor6M掉期+FRA进行预测固定。总而言之,我的目标是尽可能接近彭博社对标准Euribor6M掉期的定价(贴现ois)-fwdEuribor6M)。......
  • 我正在制作一个可以打开wav文件的python程序,我想知道wav文件的格式是什么
    因此,我已经通过此网站的研究编写了验证并读取wav标头的代码。但我想知道,data段中的数据是如何存储的?它们位于16位部分中,彼此相邻放置。我认为在Audacity中制作440hz正弦波,然后导出它,会显示一些结果,并且字节确实看起来更整齐,但仍然像废话一样接缝。相信我,我已经......
  • python - 面板库 - PasswordInput 不会对回车做出反应
    我试图避免需要提交按钮。以下代码当前正在远程jupyter实验室运行。仅当光标焦点从密码小部件中移除后,才会打印该消息。我想要回车来触发消息打印。有什么线索吗?frompanel.widgetsimportPasswordInput,TextInputpn.extension()defon_enter(event=None):message_p......
  • 即使安装了软件包,也找不到 python 模块句子转换器
    对于我的python脚本(如下所示),我使用句子转换器包,其中包含SBERT模型。即使在执行“piplist”时明确列出该软件包,并且还安装了torch,所有内容都更新到最新版本,但仍然找不到该模块。脚本:importnumpyasnpimportpandasaspdfromsentence_transformersimportSenten......
  • 有没有办法在 python 中返回类实例的布尔属性?
    我想组织我玩的游戏中的汽车数据。为此,我创建了一个“Car”类。我希望将此类实例的一些属性作为布尔值,这样我就可以将此类的所有实例放入列表中并过滤它们。我当前的解决方案不起作用,因为,我收到以下错误消息:TypeError:__repr__returnednon-string(typeCar)我使用......
  • python 正则表达式匹配一行中的多个单词而不转到下一行
    我正在编写一个解析器来解析以下输出:admin@str-s6000-on-5:~$showinterfacestatusEthernet4InterfaceLanesSpeedMTUAliasVlanOperAdminTypeAsymPFC------------------------------------------......
  • 使用 Python 平滑和对称不规则形状和曲线
    我需要完成三项任务:正则化曲线曲线的对称性完成不完整的曲线例如,这里是输入和预期的输出图像:输入输出|||在一般设置中,形状可以由任何SVG曲线基元(贝塞尔曲线、直线、弧线)表示。为了统一表示,示例包含曲线的折线近似。这些折线保存为......
  • 在Python中通过绝对路径引用数据文件夹
    我有一个大型python项目,其中数据太大,无法每次都以相同的方式共享。不同的人可能会使用网络位置或将某些内容复制到本地驱动器。该路径由不同子文件夹中的脚本和笔记本使用。例如,我将创建一个config.py来定义数据文件夹的路径。importsyssys.path.append('../'......