# WeasyPrint 库路径问题解决方案

## 问题说明

在 macOS 上使用 WeasyPrint 时，可能遇到以下错误：
```
OSError: cannot load library 'libgobject-2.0-0'
```

这是因为 Python 的 ctypes 找不到 Homebrew 安装的系统库。

## ✅ 已完成的修复

### 1. 系统依赖已安装
```bash
brew install cairo pango gdk-pixbuf libffi glib gobject-introspection
```

### 2. Python 包已重新安装
```bash
pip uninstall -y weasyprint cairocffi
pip install --no-cache-dir cairocffi weasyprint
```

### 3. 创建了便捷启动脚本

**脚本位置**: `run_bili_dl.sh`

该脚本会自动：
- 设置正确的库路径 (`DYLD_LIBRARY_PATH`)
- 激活虚拟环境
- 运行 bili-dl 命令

## 📝 使用方法

### 方法 1：使用启动脚本（推荐）

```bash
# 下载视频（自动识别分P）
./run_bili_dl.sh download "https://www.bilibili.com/video/BV1Bp4y1D747?p=7"

# 指定清晰度
./run_bili_dl.sh download BV1Bp4y1D747 --page 7 --quality 1080p

# 查看视频信息
./run_bili_dl.sh info "https://www.bilibili.com/video/BV1Bp4y1D747?p=7"
```

### 方法 2：手动设置环境变量

如果你想直接使用 `bili-dl` 命令：

```bash
# 每次使用前设置环境变量
export DYLD_LIBRARY_PATH=/opt/homebrew/lib:$DYLD_LIBRARY_PATH

# 激活虚拟环境
source venv/bin/activate

# 然后就可以直接使用 bili-dl
bili-dl download "https://www.bilibili.com/video/BV1Bp4y1D747?p=7"
```

### 方法 3：永久添加到 Shell 配置

如果你经常使用，可以将环境变量添加到你的 shell 配置文件：

```bash
# 添加到 ~/.zshrc
echo 'export DYLD_LIBRARY_PATH=/opt/homebrew/lib:$DYLD_LIBRARY_PATH' >> ~/.zshrc

# 重新加载配置
source ~/.zshrc
```

之后就可以直接使用 `bili-dl` 命令，不需要每次设置环境变量。

## 🔍 验证安装

运行以下命令验证 WeasyPrint 是否正常工作：

```bash
cd /Users/kc/Documents/ai/generate-report
source venv/bin/activate
export DYLD_LIBRARY_PATH=/opt/homebrew/lib:$DYLD_LIBRARY_PATH
python -c "from weasyprint import HTML; print('✅ WeasyPrint 工作正常！')"
```

## 📚 相关信息

- **库文件位置**: `/opt/homebrew/opt/glib/lib/libgobject-2.0.0.dylib`
- **Homebrew 前缀**: `/opt/homebrew`
- **项目虚拟环境**: `/Users/kc/Documents/ai/generate-report/venv`

## 💡 提示

1. **URL 记得加引号**：当 URL 包含 `&` 等特殊字符时，必须用引号包裹
2. **分P 自动识别**：URL 中的 `p=7` 会自动识别为第7集
3. **简化 URL**：只需保留 `BV号?p=分P编号` 即可

### 使用示例

```bash
# ✅ 正确：带引号
./run_bili_dl.sh download "https://www.bilibili.com/video/BV1Bp4y1D747?p=7"

# ✅ 正确：简化 URL
./run_bili_dl.sh download "https://www.bilibili.com/video/BV1Bp4y1D747?p=7"

# ✅ 正确：使用 --page 参数
./run_bili_dl.sh download BV1Bp4y1D747 --page 7

# ❌ 错误：不带引号（会被 shell 解析）
./run_bili_dl.sh download https://www.bilibili.com/video/BV1Bp4y1D747?p=7
```
