diff --git a/doc/users/next_whats_new/2019-01-06-pycairo-default.rst b/doc/users/next_whats_new/2019-01-06-pycairo-default.rst new file mode 100644 index 000000000000..2d8143eb4dc9 --- /dev/null +++ b/doc/users/next_whats_new/2019-01-06-pycairo-default.rst @@ -0,0 +1,5 @@ +The cairo backend now defaults to pycairo instead of cairocffi +`````````````````````````````````````````````````````````````` + +This leads to faster import/runtime performance in some cases. The backend +will fall back to cairocffi in case pycairo isn't available. diff --git a/lib/matplotlib/backends/backend_cairo.py b/lib/matplotlib/backends/backend_cairo.py index b14b94e91b76..6f6edd142249 100644 --- a/lib/matplotlib/backends/backend_cairo.py +++ b/lib/matplotlib/backends/backend_cairo.py @@ -10,21 +10,18 @@ import numpy as np -# cairocffi is more widely compatible than pycairo so try it first. try: - import cairocffi as cairo + import cairo + if cairo.version_info < (1, 11, 0): + # Introduced create_for_data for Py3. + raise ImportError except ImportError: try: - import cairo + import cairocffi as cairo except ImportError: - raise ImportError("cairo backend requires that cairocffi or pycairo " - "is installed") - else: - if cairo.version_info < (1, 11, 0): - # Introduced create_for_data for Py3. - raise ImportError( - "cairo {} is installed; cairo>=1.11.0 is required" - .format(cairo.version)) + raise ImportError( + "cairo backend requires that pycairo>=1.11.0 or cairocffi" + "is installed") backend_version = cairo.version