I'm a bit surprised about this line:
https://github.com/nipy/PySurfer/blob/master/surfer/viz.py#L152
It recently caused a lot trouble as images where not saved and subsequent report tools read in wrong temporary files from previous analyses.
Why do we need a try/except block here?
It is very difficult to learn something about the underlying issue if errors are silenced.