Linux ディストリビューション向けのパッケージング#

要件#

  • Python

  • MuPDF チェックアウト(サブモジュールを含む)。

  • PyMuPDF チェックアウト。

  • scripts/sysinstall.py:g_sys_packages にリストされたシステムパッケージ。

  • pyproject.toml にリストされた Python パッケージ。

テストの実行に必要な追加要件:

  • scripts/gh_release.py:test_packages にリストされた Python パッケージ。

一般的な手順#

  • MuPDF をビルドしてインストールする:

    • 必要なシステムパッケージをインストールします。

    • MuPDF の Makefilemake install-shared-python を実行し、少なくともこれらの make 変数を設定します:

      • DESTDIR をインストールディレクトリに設定します。例: /

      • prefix を DESTDIR に相対的な場所に設定します。たとえば /usr/local または /usr など、必ず / で始める必要があります。

      • USE_SYSTEM_LIBS=yes.

      • HAVE_LEPTONICA=yes.

      • HAVE_TESSERACT=yes.

  • pip install ./PyMuPDF

    • pip install ./PyMuPDF または pip wheel ./PyMuPDF を実行します。少なくとも以下の環境変数を設定してください:

      • PYMUPDF_SETUP_MUPDF_BUILD= (空の文字列):ハードコードされた MuPDF リリースのダウンロードとビルドを防ぐために設定します。

      • CFLAGSCXXFLAGS、および LDFLAGS を設定して、インストールされた MuPDF のヘッダーと共有ライブラリが見えるようにします。

  • PyMuPDF テストを実行する:

    • 必要な Python パッケージが利用可能であることを確認します

    • pytest -k "not test_color_count and not test_3050" PyMuPDF を実行します。

      • test_color_count テストは、MuPDF が PyMuPDF のカスタム config.h でビルドされていない場合に失敗することが既知です。

      • test_3050 テストは、MuPDF が独自のサードパーティライブラリを使用せずにビルドされている場合に失敗することが既知です。

scripts/sysinstall.py の使用#

scripts/sysinstall.py は、定期的に GitHub アクション .github/workflows/test_sysinstall.yml で実行されるため、動作が確認されているビルド、インストール、およびテストコマンドの便利な例を提供しています。

  • 詳細な使用方法については、-h を付けて実行するか、ドキュメント文字列を参照してください。

  • システムパッケージのインストールには、Debian スタイルの apt コマンドが使用されます。

  • デフォルトでは、ローカルの git チェックアウトである mupdf/PyMuPDF/ を想定しています。

ローカルのフェイクルートとシステムルートの両方で、フルビルド、インストール、およびテストを実行するには、

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

実際に実行せずに実行されるコマンドを確認するには:

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

参考にしてください#

  • 参考にしてください setup.py の最初のドキュメントコメントには、PyMuPDF をビルドする際に使用される環境変数に関する詳細な情報が含まれています。