适用于 Linux 发行版的打包#

要求#

  • Python

  • MuPDF checkout (包括子模块)。

  • PyMuPDF checkout。

  • scripts/sysinstall.py:g_sys_packages 中列出的系统包。

  • pyproject.toml 中列出的 Python 包。

运行测试的额外要求

  • scripts/gh_release.py:test_packages 中列出的 Python 包。

一般步骤#

  • 构建并安装 MuPDF

    • 安装所需的系统包。

    • 在 MuPDF 的 Makefile 上运行 make install-shared-python,并使用至少以下 make 变量

      • DESTDIR 设置为安装目录,例如 /

      • prefix 设置为相对于 DESTDIR 的位置,例如 /usr/local/usr。必须以 / 开头。

      • USE_SYSTEM_LIBS=yes.

      • HAVE_LEPTONICA=yes.

      • HAVE_TESSERACT=yes.

  • 构建并安装 PyMuPDF

    • 运行 pip install ./PyMuPDFpip wheel ./PyMuPDF,并使用至少以下环境变量

      • PYMUPDF_SETUP_MUPDF_BUILD= (空字符串)以防止下载和构建硬编码的 MuPDF 版本。

      • 设置 CFLAGSCXXFLAGSLDFLAGS 以确保已安装的 MuPDF 头文件和共享库可见。

  • 运行 PyMuPDF 测试

    • 确保所需的 Python 包可用。

    • 运行 pytest -k "not test_color_count and not test_3050" PyMuPDF

      • 如果 MuPDF 未使用 PyMuPDF 的自定义 config.h 构建,则 test_color_count 测试已知会失败。

      • 如果 MuPDF 未使用其自带的第三方库构建,则 test_3050 测试已知会失败。

使用 scripts/sysinstall.py#

scripts/sysinstall.py 提供了已知可行的构建、安装和测试命令的有用示例,因为它由 Github action .github/workflows/test_sysinstall.yml 定期运行。

  • 使用 -h 运行或查看 doc-string 以获取详细用法信息。

  • 它使用 Debian 风格的 apt 命令来安装系统包。

  • 默认情况下,它假定存在本地 git checkout mupdf/PyMuPDF/

为本地假根目录和系统根目录运行完整的构建、安装和测试

./PyMuPDF/scripts/sysinstall.py
./PyMuPDF/scripts/sysinstall.py --root /

查看将要运行的命令,而不实际运行它们

./PyMuPDF/scripts/sysinstall.py -m 0 -p 0 -t 0

另请参阅#

  • setup.py 的初始 doc-comment 包含有关构建 PyMuPDF 时使用的环境变量的详细信息。