news 2026/9/12 9:31:22

如何用 book-to-skill 的 --check 检查各格式提取器是否可用并安装缺失项

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用 book-to-skill 的 --check 检查各格式提取器是否可用并安装缺失项

如何用 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)、pypdfpdfminer三者任一即可
PDF (technical: tables, code, formulas)docling--mode technical需要,否则退回文本链
EPUBebooklib+beautifulsoup4退回标准库zipfile解析器
DOCXpython-docx退回标准库 ZIP/XML 解析器
HTMLtrafilaturabs4退回bs4,再退回标准库html.parser
RTFstriprtf退回基础正则清理
MOBI / AZW / AZW3Calibre 的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.

两点判断依据:

  1. 不要用退出码判断结果。--check的进程退出码始终是 0——代码注释明确说明"缺失的可选依赖不算错误,因为多数格式有兜底"。判断只看每组的状态行。
  2. 全部就位时的结束行是: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 pypdfpip3 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 的话,pdftotextpypdf装一个就够,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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 9:28:34

AI Agent开发核心:状态演化与多技术协同实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 9:28:29

PolarDB从节点故障排查与参数优化实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华