Skip to content
Jorj X. McKie edited this page Apr 3, 2018 · 2 revisions

Motivation

Because PyMuPDF is based on the fabulous C library MuPDF, installation has always been burdened with a layered approach: first install MuPDF, then PyMuPDF.

MuPDF is a combination of standalone, command line tools and a library of functions, both written to support a plethora of platforms: among them desktop computers (MS Windows, MacOSX, Linux, and more) and smartphones (Android). In order to use the library functions, they must be compiled from portable C-source on the required platform.

MuPDF in turn relies on about half a dozen other freeware, which must be concurrent with it, and also be compiled from source. This "thirdparty" software is distributed along with MuPDF's source.

So, this first step, generating MuPDF, is error-prone and not perceived as fun by everybody.

Compared to this he second step, generating PyMuPDF, is straightforward Python C-extension compilation, and no real challenge if you correctly reference the libraries of MuPDF.

I always felt that the purpose of PyMuPDF is in no favorable relation to its installation effort - after all it is just a way to access a handful of special file formats. While some developers certainly will enjoy going through all this mudd and like kicking issues out of the way, many more have probably other things to worry about. Having a fairly complete freeware for PDF access is not the goal of their work, but just a tool to achieve yet other goals.

So, wrapping up, I think since end of March 2018, we are where we ever should have been: everyone using a mainstream Python desktop platform can now choose to install PyMuPDF from a binary Python wheel.

Which Wheels Are Available?

We are producing wheels for MS Windows, Mac OSX and Linux for Python versions 2.7, 3.4, 3.5, and 3.6. On Windows, sneak versions of Python 3.7 are also available.

Support of versions prior to Python 2.7 is not possible, but any other version is. We are just restricting ourselves to versions actually in demand.

Windows wheels (provided as 32bit and 64bit and created on my own machine) should run on all Windows versions XP/SP2 and up. They are mainly tested on a Windows 10 64bit machine, but occasionally so on a virtual XP as well.

Linux wheels are provided in 64bit format only. We create them on Travis CI servers using cibuildwheel. This should ensure they can be used on "most" Linux flavours. I am testing them on a virtual Ubuntu 17.10 and on the Windows subsystem for Linux (Ubuntu 16.04).

Mac OSX wheels in 64bit are provided in the same way as Linux, via Travis CI and cibuildwheel.

Where Are those Wheels?

All wheels can be found here. We also publish them on PyPI. But if you are looking for the most current ones, stay with this repository. You can download any wheel directly from here or use PIP.

I used to use a special repository to store Windows wheels only. This was before the time we learned about ways to also generate Mac OSX and Linux wheels - without having to provide the respective platforms ourselves.

As we now are beyond that point, I am going to phase out this repo again.

What about Other Binary Installation Options?

I am also maintaining an extra repository, called "optional material", for storing Windows-specific stuff. Apart from a Windows CHM-based version of our documentation, I am also hosting Windows-specific installation material in a ZIP format. This is fairly similar to wheels, it just does not need PIP to get installed.

Clone this wiki locally