[Matplotlib-devel] mplcairo 0.1a1

Antony Lee antony.lee at berkeley.edu
Tue Mar 13 03:46:11 EDT 2018


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 :-)),

Antony
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-devel/attachments/20180313/c75eed8b/attachment.html>


More information about the Matplotlib-devel mailing list