You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS Ventura下Homebrew安装WeasyPrint后Python模块缺失求助

解决Homebrew安装的WeasyPrint无法被Python3.11加载的问题

问题根源

Homebrew安装的WeasyPrint默认绑定了Python3.12(从你提供的路径/usr/local/Cellar/weasyprint/60.1_1/libexec/lib/python3.12/site-packages/weasyprint可看出),而你使用的是Python3.11——两个版本的Python模块目录完全独立,因此3.11无法找到WeasyPrint模块;手动复制文件会遗漏依赖,进而引发fontTools缺失的问题。

解决方案

方案1:使用Homebrew对应的Python版本运行脚本

Homebrew的WeasyPrint在自身的Python3.12环境中已配置好所有依赖,直接用该版本Python执行脚本即可:

  1. 查找Homebrew的Python3.12路径:
    which python3.12
    
  2. 用该路径运行你的脚本:
    /usr/local/opt/python@3.12/bin/python3 weasytest.py
    

方案2:给Python3.11单独安装WeasyPrint(推荐)

直接通过pip给你的Python3.11安装WeasyPrint,会自动处理所有依赖,无需手动复制或链接:

python3.11 -m pip install weasyprint

安装完成后,模块会直接出现在Python3.11的site-packages目录中,运行python3 weasytest.py即可正常加载。

方案3:创建符号链接(不推荐)

如果一定要使用Homebrew安装的WeasyPrint,可将其依赖目录中的包链接到Python3.11的模块目录,但因Python版本差异(3.11 vs 3.12)可能引发兼容性问题:

  1. 遍历WeasyPrint的site-packages目录下的所有包,逐个创建符号链接:
    # 链接WeasyPrint模块
    ln -s /usr/local/Cellar/weasyprint/60.1_1/libexec/lib/python3.12/site-packages/weasyprint /usr/local/lib/python3.11/site-packages/weasyprint
    # 链接fontTools依赖
    ln -s /usr/local/Cellar/weasyprint/60.1_1/libexec/lib/python3.12/site-packages/fontTools /usr/local/lib/python3.11/site-packages/fontTools
    # 其他依赖包如cffi、cssselect2、tinycss2等也需要同样处理
    
  2. 注意:后续Homebrew更新WeasyPrint或Python时,链接可能失效,需要重新操作。

内容的提问来源于stack exchange,提问作者Lukas Bystricky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 20:51:14