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

MacOS Catalina部署Saleor:WeasyPrint找不到gobject-2.0-0依赖

问题分析与解决办法

核心原因

Macport安装的gobject-2.0.0依赖与当前Python环境的路径不匹配,加上MacOS Catalina的系统框架限制,导致WeasyPrint无法正确识别依赖库。

1. 切换到Macport官方Python环境

如果当前使用的不是Macport安装的Python,肯定找不到Macport下的依赖:

  • 执行which python3,若输出不是/opt/local/bin/python3,执行切换命令(以Python3.9为例):
    port select --set python3 python39
    
  • 重启终端后再次验证which python3,确保路径正确。

2. 配置环境变量关联Macport库路径

Catalina对DYLD_LIBRARY_PATH有严格限制,需手动指定Macport的库路径:

  • 临时测试:终端执行以下命令后启动Django服务器:
    export DYLD_LIBRARY_PATH=/opt/local/lib:$DYLD_LIBRARY_PATH
    
  • 永久生效:将上述命令添加到~/.zshrc(或~/.bash_profile,取决于你用的shell),然后执行source ~/.zshrc刷新配置。

3. 重新安装WeasyPrint到Macport Python环境

确保WeasyPrint安装在正确的Python环境中:

  • 先卸载现有版本:
    pip3 uninstall weasyprint
    
  • 使用Macport的pip重新安装:
    /opt/local/bin/pip3 install weasyprint
    
  • 若安装时提示gobject相关依赖缺失,补装Macport的gobject开发包:
    port install py39-gobject3  # 替换为你的Python版本,如py38-gobject3
    

4. 验证WeasyPrint依赖加载

运行以下命令检查gobject是否被正确识别:

python3 -c "import weasyprint; from weasyprint.document import HTML; print('依赖加载成功')"

若报错,执行以下命令补装gobject-introspection组件:

port install gobject-introspection

5. 手动注入路径到项目(极端方案)

如果以上步骤都无效,在项目的utils.py开头添加以下代码,强制指定依赖路径:

import sys
import os
# 替换为你的Macport Python site-packages路径
sys.path.append('/opt/local/lib/python3.9/site-packages')
os.environ['DYLD_LIBRARY_PATH'] = '/opt/local/lib:' + os.environ.get('DYLD_LIBRARY_PATH', '')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:01:12