如何用 book-to-skill 的 --check 检查各格式提取器是否可用并安装缺失项
【免费下载链接】book-to-skillTurn any technical book PDF into a Claude Code skill — ready to study, reference, and use while you work.项目地址: https://gitcode.com/GitHub_Trending/bo/book-to-skill
book-to-skill 把技术书籍(PDF、EPUB、DOCX、HTML、RTF、MOBI/AZW 等)转换成可按需加载的 agent skill。它的 Python 提取器按格式依次尝试多个工具,用第一个可用的;可选依赖没装时会退回到标准库解析器,而 MOBI/AZW 这类格式则完全没有兜底。所以在正式转换第一本书之前,先用--check一条命令确认每种格式的提取器是否就位,并把缺失项的安装命令拿到手,是文档给出的标准做法。本文适用环境:已按 docs/install.md 安装好项目(git clone 到 skills 目录,或通过 pip 安装独立 CLI)的机器,Python 版本满足 pyproject.toml 中的>=3.9要求。
准备:拿到项目
--check不需要任何输入文件,只需要能运行提取器。两种安装方式对应两个入口:
- 作为 agent skill 使用(
git clone进 skills 目录,如~/.claude/skills/book-to-skill,各主机路径见 docs/install.md)→ 在仓库检出目录中运行scripts/extract.py; - 作为独立 CLI 使用(pip 从仓库安装,
book-to-skill --help可用)→ 直接运行book-to-skill命令。注意这条路径不注册/book-to-skillagent skill,只装提取引擎。
如果你用 git clone 方式获取项目(clone 目标地址为https://gitcode.com/GitHub_Trending/bo/book-to-skill),进入目录后确认scripts/extract.py存在即可。
运行依赖检查
在仓库检出目录执行:
python3 scripts/extract.py --check如果你装的是独立 CLI,等价命令是:
book-to-skill --check这条命令扫描全部格式的全部可选依赖,打印状态报告,并附上缺失项的精确安装命令。README.md 对它的描述是:"prints which extractors are installed for every format and the exact command to install anything missing — no file needed"。
注意--check本身只检查、不安装:它把该装的包名列出来,安装动作由你执行打印出的命令完成。
读懂检查报告
报告按格式分组打印,当前代码(book_to_skill/dependencies.py 中的DEPENDENCY_GROUPS)覆盖以下 8 组:
| 分组标签 | 检查项 | 缺失时的行为 |
|---|---|---|
| PDF (smart inspection / native Markdown) | pdf-inspector | 可选层,退回现有 PDF 链 |
| PDF (text-heavy) | pdftotext(poppler)、pypdf、pdfminer | 三者任一即可 |
| PDF (technical: tables, code, formulas) | docling | 仅--mode technical需要,否则退回文本链 |
| EPUB | ebooklib+beautifulsoup4 | 退回标准库zipfile解析器 |
| DOCX | python-docx | 退回标准库 ZIP/XML 解析器 |
| HTML | trafilatura或bs4 | 退回bs4,再退回标准库html.parser |
| RTF | striprtf | 退回基础正则清理 |
| MOBI / AZW / AZW3 | Calibre 的ebook-convert | 无兜底,Calibre 是硬性要求 |
每组的输出结构是:每个依赖一行✓(已装)或✗(缺失),最后一行是状态判定。状态只有三种(见 book_to_skill/dependencies.py 的run_dependency_check):
ready— 该组依赖满足;fallback available (install for best quality)— 有标准库兜底,装上是可选优化;MISSING — required, no fallback— 只有 Calibre 这一组会出现,MOBI/AZW 文件将无法处理。
一个混合状态的示例输出(结构依据dependencies.py的报告逻辑,具体哪些是✓/✗取决于你的环境):
book-to-skill — dependency check PDF (text-heavy) ✗ python: pypdf ✗ python: pdfminer.six ✗ system: pdftotext (poppler-utils) → fallback available (install for best quality) — any one of pdftotext / pypdf / pdfminer is enough MOBI / AZW / AZW3 ✗ system: ebook-convert (Calibre) → MISSING — required, no fallback — no fallback — Calibre is required for these formats To enable the best extractor for every format, install the missing pieces: /usr/bin/python3 -m pip install pypdf pdfminer.six # Calibre: 安装提示指向 Calibre 官方下载页 Note: missing Python packages are optional — most formats fall back to a stdlib parser. Calibre is the only hard requirement, and only for MOBI/AZW files.两点判断依据:
- 不要用退出码判断结果。
--check的进程退出码始终是 0——代码注释明确说明"缺失的可选依赖不算错误,因为多数格式有兜底"。判断只看每组的→状态行。 - 全部就位时的结束行是:
All optional dependencies are installed. You're ready for every format.出现这一行说明所有格式都是ready。
安装缺失项
报告末尾会打印现成的安装命令:Python 包一行{当前解释器} -m pip install <包名...>(如/usr/bin/python3 -m pip install pypdf pdfminer.six),系统工具则给出各自的安装提示。按报告执行即可;各格式对应的具体命令在 README.md 的 Requirements 一节有完整表格,例如:
pdftotext(poppler):sudo apt install poppler-utils- 文本型 PDF 兜底:
pip3 install pypdf或pip3 install pdfminer.six - 技术型 PDF(代码、表格、公式):
pip3 install docling - EPUB 最佳质量:
pip3 install ebooklib beautifulsoup4 - DOCX:
pip3 install python-docx;HTML:pip3 install beautifulsoup4;RTF:pip3 install striprtf - MOBI/AZW:Calibre 是外部应用(不走 pip),按报告给出的提示从 Calibre 官方渠道安装
执行前注意各命令的副作用:pip install会往当前解释器的环境里写包;sudo apt install poppler-utils需要 root 权限并修改系统包;Calibre 是独立应用安装。
优先级可以这样定:报告里标MISSING — required的(Calibre,且只有你要处理 MOBI/AZW 时才需要)先装;标fallback available的按你要转换的书的格式挑着装——只转纯文本型 PDF 的话,pdftotext或pypdf装一个就够,docling只有在用--mode technical时才需要。
报告仍提示缺失、但你确认装过
--check检查的是当前运行解释器能否 import 该模块,外加 PATH 上有没有对应命令。如果你用 pipx 之类的隔离方式装过工具(比如docling),可执行文件在 PATH 上但模块对当前解释器不可见,报告会保持✗并追加一段诊断,指出该命令所在路径、它属于一个隔离环境,以及可以用该环境自带的python来运行scripts/extract.py …(逻辑见 book_to_skill/dependencies.py 的isolated_install_hint)。这种提示只是诊断,不会把依赖改判为已满足——要么用那个环境的解释器跑提取器,要么把包装进当前环境。
验证
安装完成后原样重跑:
python3 scripts/extract.py --check以报告为准:你关心的每组都显示ready,或者明确显示可接受的fallback available状态,且不再有待安装的包名/系统提示;全装齐时结尾出现All optional dependencies are installed. You're ready for every format.。
下一步
检查通过后就按 docs/usage.md 用/book-to-skill <文件|目录|glob>转换第一本书。另外,真正执行提取时提取器遇到缺失包也会主动提示(独立 CLI 的用法里有--install-missing ask|yes|no参数控制是否自动安装),与--check的手动路径互补;PDF 该选pdftotext还是docling的对照表同样见 README.md。
【免费下载链接】book-to-skillTurn any technical book PDF into a Claude Code skill — ready to study, reference, and use while you work.项目地址: https://gitcode.com/GitHub_Trending/bo/book-to-skill
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考