Python GUI backend choices (Qt, PySide, PyQt, Wx, Tkinter)

This is a placeholder for supplemental documentation about how to specify a GUI backend, and known issues as they emerge.


From the Canopy 1.6.1 Release notes:

Fixed & Improved: Qt/Pyside is now the default GUI backend in terminal and notebook (#3723)

To avoid conflicting assumptions about whether Wx, Qt/PySide or Qt/PyQt is used as the GUI backend for your Python programs, and for better compatibility with the default assumptions inside the Canopy GUI -- the default GUI backend is now Qt, and the default Qt bindings package is now PySide.

Therefore, if your code implicitly assumes that Wx or PyQt are the backend, you will need to change your code or else specify them before your code runs, e.g. by setting ETS_TOOLKIT and/or QT_API environment variables, or by using IPython/Jupyter's
--gui, --matplotlib, or --pylab startup options, or the equivalent magic commands or Jupyter or matplotlib configuration file settings.

Heads up: We expect that Qt will remain the default backend for a long time. However we plan to transition to Qt5 in the coming year; given the current state of PySide, this would require a change from PySide to PyQt.

Update August 13, 2017 - Canopy's transition from PySide to PyQt4 is well underway, and will be followed by the transition from PyQt4 to PyQt5.


From the Canopy 1.6.2 Release notes:

Fixed: Matplotlib 1.5.0 GUI backend issues (#3942)

A number of issues were identified in Matplotlib 1.5.0. Several of these affect the use of the Qt and Wx GUI backends. Our fixes for these are in Enthought’s patched Matplotlib 1.5.0-4, and along with many other fixes, are also in Matplotlib 1.5.1, just released and also bundled with this Canopy installer. (Note that bundled packages do not affect existing Canopy User environments; see “Package updates” above).


Have more questions? Submit a request


  • Avatar
    Patrick Moran
    Great to hear this. I've been using Qt4 for quite a while. Its been a bear to install and has required installations outside the normal EPD package installer. I might add that, so far, the PyQt4 install works well with the exception of PyQt4.Qsci. Apparently that package requires a separate installation of QScintilla. (see Installing QScintilla requires nmake which is not installed by default (AFAIK). Fortunately has been nice enough to create an installation exe file for windows. It would be really really nice if EPD has the complete install for PyQt4/ PyQt5! PJM
Powered by Zendesk