python-poppler requires at least Python 3.6.
This package is currently distributed as source only, and is currently tested on Linux only (using Arch Linux on my personal machine, and Ubuntu 18.04 an 20.04 using GitHub actions.
It requires poppler version 0.26 or higher. Beware that poppler version scheme changed to date based version numbers, starting in August, 2020. Therefore, it jumped from 0.90 (July, 2020) to 20.08 (August, 2020).
The cpp binding is done using pybind11, which is included with the package. To build the package, you need the usual development tools (gcc, cmake…)
Installing from PyPI¶
Installing from PyPI is the easiest way to install python-poppler. Be sure to have all the requirements installed. Ideally, you should install the package inside a Python virtual environment.
pip install python-poppler
Installing from git¶
When you clone the repository, you must include submodules:
git clone --recurse-submodules https://github.com/cbrunet/python-poppler.git
Alternatively, you can fetch the submodules later, using:
git submodule update --init --recursive
Then you simply need to use the
setup.py script to perform
the usual tasks. For instance:
python setup.py install
The setup.py script will invoke cmake, compile the binding, and install all the files at the right place.
Compiling your own version of Poppler¶
If you want to use a poppler version more recent than what is provided by your distribution, you need to compile it from sources.
First you need to install all the required libraries. A easy way to do it is to install the distribution version of poppler, to be sure all its dependencies are installed.
Then you need to clone the poppler repository, and to checkout the desired version (or you can stay on the HEAD of master if this is what you want):
$ git clone https://gitlab.freedesktop.org/poppler/poppler.git $ cd poppler $ git checkout poppler-0.89.0
Next, you need to compile poppler. This is done using cmake. You may want to specify the CMAKE_INSTALL_PREFIX path if you want to install it in another place than in the default /usr/local:
$ mkdir build $ cd build $ cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX:PATH=/usr/local \ -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \ -DBUILD_GTK_TESTS=OFF \ -DBUILD_QT5_TESTS=OFF \ -DBUILD_CPP_TESTS=OFF \ -DENABLE_CPP=ON \ -DENABLE_GLIB=OFF \ -DENABLE_GOBJECT_INTROSPECTION=OFF \ -DENABLE_GTK_DOC=OFF \ -DENABLE_QT5=OFF \ -DBUILD_SHARED_LIBS=ON \ .. $ make
Finally, you must install the lib. You may need sudo or not, depending on the install prefix path you used:
$ sudo make install
Before building python-poppler, you need to ensure it uses the version you just installed. poppler uses pkg_config. Therefore, you can set the PKG_CONFIG_PATH environment variable to the path where are located the pkg_config files. For instance:
Now you can install python-poppler, using either pip or from the git sources.
If the poppler library is not located in a standard place, it is possible that python-poppler is not able to find it. you can use the LD_LIBRARY_PATH environment variable to tell the system where to search for the poppler shared libraries:
$ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Finally, you can test that everything is working by printing the poppler version:
>>> import poppler >>> poppler.version() (0, 89, 0)