mupdfのソースをカスタマイズし、それをPyMuPDFに反映した
wrote 2024/04/30
通常、PyMuPDF 2.24.2 をソースからインストールと、
https://mupdf.com/downloads/archive/mupdf-1.24.1-source.tar.gz がダウンロードされ、解凍し、ビルドし、そのライブラリが使用される。
カスタマイズした、手元にあるソースからビルドするには、PYMUPDF_SETUP_MUPDF_BUILDに、パスを設定する。
また、TESSERACTを不要にするには、PYMUPDF_SETUP_MUPDF_TESSERACT='0'
クリーンインストールするには、PYMUPDF_SETUP_MUPDF_CLEAN='1' とする。
これらのパラメータについては、PyMuPDFのsetup.pyに記載がある。
うまくいかず、何度も失敗した。自分の環境(macOS10.15.7 Catalina)
libclangが必要だった。pip install libclang で設定した。
swigなかった。brew install swig をした。
PyMuPDFのdirと同じ階層に、mupdf-1.24.1-souceのdirがある場合、次のコマンドで、インストールした。
PYMUPDF_SETUP_MUPDF_TESSERACT='0' PYMUPDF_SETUP_MUPDF_CLEAN='1' PYMUPDF_SETUP_MUPDF_BUILD='../mupdf-1.24.1-source' python setup.py install
起動すると、
PyMuPDF-1.24.2/setup.py: ### Starting. と表示され、パラメータがずらずら表示される。その中に、
PyMuPDF-1.24.2/setup.py: PYMUPDF_SETUP_MUPDF_BUILD: '../mupdf-1.23.11-source'
PyMuPDF-1.24.2/setup.py: PYMUPDF_SETUP_MUPDF_CLEAN: '1'
PyMuPDF-1.24.2/setup.py: PYMUPDF_SETUP_MUPDF_TESSERACT: '0'
となっており、反映されているのが確認できる。
ビルドが進み、最後に
pipcl.py: install(): Writing to: *********************/mupdf/.venv/lib/python3.8/site-packages/PyMuPDF-1.24.2.dist-info/RECORD
pipcl.py: install(): Finished.
pipcl.py: handle_argv(): Finished handling command: install
で終わった。
ところが!
1.23でもやってみたのだが、エラーが出て、ソースからビルドできない....
Discordで聞いてみたところ、libclangのバージョンが新しすぎるとのこと。
pip install libclang==17.0.6
してから、実行したところ、
pipcl.py: install(): Finished.
pipcl.py: handle_argv(): Finished handling command: install
となった!
Discussion