[Matplotlib-devel] mplcairo 0.1a1

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[Matplotlib-devel] mplcairo 0.1a1

Antony Lee
Hi all,

I have just pushed a first pre-release of mplcairo to PyPI (https://pypi.python.org/pypi/mplcairo).  As mentioned a few times on the mailing list, it is a new Matplotlib backend based on the well-known cairo library, supporting output to both raster (including interactively) and vector formats.  In other words, it provides the functionality of Matplotlib's {,qt5,gtk3,wx,tk,macos}agg, pdf, ps, and svg backends :-)  As for any backend, use e.g. by calling `matplotlib.use("module://mplcairo.qt")`, or setting your MPLBACKEND environment variable to `module://mplcairo.qt`.  Please check the README for additional information.

manylinux, osx, and windows wheels are available (3.6 only; may look into older Python (3...) versions later).  On Linux and OSX, the wheels declare a dependency on pycairo (which is how I get a handle onto libcairo); you may want to get it e.g. from conda.  On Windows, the wheel includes cairo.

I am reasonably confident that the manylinux and windows wheels "work" (of course, feedback is more than welcome), but would particularly appreciate help regarding the OSX wheels.  Briefly speaking, for OSX, I have only managed to coerce Travis to build a macos_10_12 wheel (corresponding to the version from Homebrew, and apparently working with it), but conda's Python only accepts wheels up to macos_10_9 (so basically conda's Python can't use the wheels: you need to build mplcairo yourself); moreover, because it appears impossible to statically link libc++ on OSX, mplcairo specifically needs to be imported before matplotlib.  If you don't, mplcairo won't eat your data, but may well segfault your process.  Any insight regarding the intricacies of cross-version compatibility and/or dynamic loading on OSX would be appreciated...

Enjoy (hopefully :-)),


Matplotlib-devel mailing list
[hidden email]