Repository: nipreps/niworkflows
Issue: [BUG] NameError: global name 'FileNotFoundError' is not defined

I guess a little mistake we made in the custom `_which` function.

```
2017-03-06 16:34:16,476 workflow:ERROR [u'Node SpatialNormalization.a0 failed to run on host nid01075.']
2017-03-06 16:34:16,476 workflow:INFO Saving crash info to /scratch/03827/weisian/uh2/out/logs/crash-20170306-163416-weisian-SpatialNormalization.a0-ba38f996-a7bb-4a74-a7d6-a74fd31a2be3.pklz
2017-03-06 16:34:16,476 workflow:INFO Traceback (most recent call last):
  File "/work/01329/poldrack/software/anaconda2-4.2.0/lib/python2.7/site-packages/nipype-0.13.0_g07a75a6.dev-py2.7.egg/nipype/pipeline/plugins/multiproc.py", line 52, in run_node
    result['result'] = node.run(updatehash=updatehash)
  File "/work/01329/poldrack/software/anaconda2-4.2.0/lib/python2.7/site-packages/nipype-0.13.0_g07a75a6.dev-py2.7.egg/nipype/pipeline/engine/nodes.py", line 366, in run
    self._run_interface()
  File "/work/01329/poldrack/software/anaconda2-4.2.0/lib/python2.7/site-packages/nipype-0.13.0_g07a75a6.dev-py2.7.egg/nipype/pipeline/engine/nodes.py", line 476, in _run_interface
    self._result = self._run_command(execute)
  File "/work/01329/poldrack/software/anaconda2-4.2.0/lib/python2.7/site-packages/nipype-0.13.0_g07a75a6.dev-py2.7.egg/nipype/pipeline/engine/nodes.py", line 607, in _run_command
    result = self._interface.run()
  File "/work/01329/poldrack/software/anaconda2-4.2.0/lib/python2.7/site-packages/nipype-0.13.0_g07a75a6.dev-py2.7.egg/nipype/interfaces/base.py", line 1085, in run
    runtime = self._run_wrapper(runtime)
  File "/work/01329/poldrack/software/anaconda2-4.2.0/lib/python2.7/site-packages/nipype-0.13.0_g07a75a6.dev-py2.7.egg/nipype/interfaces/base.py", line 1033, in _run_wrapper
    runtime = self._run_interface(runtime)
  File "/work/01329/poldrack/software/anaconda2-4.2.0/lib/python2.7/site-packages/niworkflows-99.99.99-py2.7.egg/niworkflows/common/report.py", line 72, in _run_interface
    self._generate_report()
  File "/work/01329/poldrack/software/anaconda2-4.2.0/lib/python2.7/site-packages/niworkflows-99.99.99-py2.7.egg/niworkflows/common/report.py", line 175, in _generate_report
    compress=self.inputs.compress_report),
  File "/work/01329/poldrack/software/anaconda2-4.2.0/lib/python2.7/site-packages/niworkflows-99.99.99-py2.7.egg/niworkflows/viz/utils.py", line 318, in plot_registration
    svg = extract_svg(display, compress=compress)
  File "/work/01329/poldrack/software/anaconda2-4.2.0/lib/python2.7/site-packages/niworkflows-99.99.99-py2.7.egg/niworkflows/viz/utils.py", line 146, in extract_svg
    image_svg = svg_compress(image_svg, compress)
  File "/work/01329/poldrack/software/anaconda2-4.2.0/lib/python2.7/site-packages/niworkflows-99.99.99-py2.7.egg/niworkflows/viz/utils.py", line 77, in svg_compress
    if (_which('svgo') and compress == 'auto') or compress == True:
  File "/work/01329/poldrack/software/anaconda2-4.2.0/lib/python2.7/site-packages/niworkflows-99.99.99-py2.7.egg/niworkflows/viz/utils.py", line 407, in _which
    except FileNotFoundError:
NameError: global name 'FileNotFoundError' is not defined
Interface RobustMNINormalizationRPT failed to run. 
```

Changed files:
niworkflows/viz/utils.py

diff --git a/niworkflows/viz/utils.py b/niworkflows/viz/utils.py
index 923ebc76..2de5afb0 100644
--- a/niworkflows/viz/utils.py
+++ b/niworkflows/viz/utils.py
@@ -403,7 +403,11 @@ def compose_view(bg_svgs, fg_svgs, ref=0, out_file='report.svg'):
 
 def _which(cmd):
     try:
-        subprocess.run([cmd], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
-    except FileNotFoundError:
-        return False
+        subprocess.run([cmd], stdin=subprocess.DEVNULL,
+                       stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
+    except OSError as e:
+        from errno import ENOENT
+        if e.errno == ENOENT:
+            return False
+        raise e
     return True