Also catch RuntimeError when importing matplotlib in slow_bend.py.
authorW. Trevor King <wking@drexel.edu>
Tue, 6 Dec 2011 03:36:28 +0000 (22:36 -0500)
committerW. Trevor King <wking@drexel.edu>
Tue, 6 Dec 2011 03:36:31 +0000 (22:36 -0500)
When it can't initialize the backend, the matplotlib crashes with a
runtime error.  For example, I've used `~/.matplotlib/matplotlibrc` to
select the GTKAgg backend as my default.  When I log in without X,
running the previous version of slow_bend.py would produce:

  $ slow_bend.py --help
  /usr/lib/python2.7/site-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
    warnings.warn(str(e), _gtk.Warning)
  /usr/lib/python2.7/site-packages/matplotlib/backends/backend_gtk.py:48: GtkWarning: IA__gdk_cursor_new_for_display: assertion `GDK_IS_DISPLAY (display)' failed
    cursors.MOVE          : gdk.Cursor(gdk.FLEUR),
  Traceback (most recent call last):
    File "/home/wking/bin/slow_bend.py", line 39, in <module>
      from matplotlib import pyplot as _pyplot
    ...
  RuntimeError: could not create GdkCursor object

posts/slow_bend/slow_bend.py

index 63cd2e05dcdf19a92bf5f5cc5bd16f786b3fe5c2..b62c3e183c6cb09150b0cf6e7afad881300ddf1e 100755 (executable)
@@ -37,7 +37,7 @@ import time as _time
 try:
     import numpy as _numpy
     from matplotlib import pyplot as _pyplot
-except ImportError, _matplotlib_import_error:
+except (ImportError, RuntimeError), _matplotlib_import_error:
     _pyplot = None
 
 import pycomedi.device as _pycomedi_device