@@ -1454,8 +1454,18 @@ def _process(drain=0):
14541454 result ['stderr' ] = read_stream (stderr , logger = iflogger )
14551455
14561456 runtime .returncode = proc .returncode
1457- proc .terminate () # Ensure we are done
1458- gc .collect () # Force GC for a cleanup
1457+ try :
1458+ proc .terminate () # Ensure we are done
1459+ except OSError as error :
1460+ # Python 2 raises when the process is already gone
1461+ if error .errno != errno .ESRCH :
1462+ raise
1463+
1464+ # Dereference & force GC for a cleanup
1465+ del proc
1466+ del stdout
1467+ del stderr
1468+ gc .collect ()
14591469
14601470 runtime .stderr = '\n ' .join (result ['stderr' ])
14611471 runtime .stdout = '\n ' .join (result ['stdout' ])
@@ -1482,7 +1492,7 @@ def get_dependencies(name, environ):
14821492 proc = sp .Popen (
14831493 cmd (name ), stdout = sp .PIPE , stderr = sp .PIPE , shell = True ,
14841494 env = environ , close_fds = True )
1485- o , e = proc .communicate ()
1495+ o , _ = proc .communicate ()
14861496 proc .terminate ()
14871497 gc .collect ()
14881498 except :
@@ -1629,6 +1639,23 @@ def raise_exception(self, runtime):
16291639 def _get_environ (self ):
16301640 return getattr (self .inputs , 'environ' , {})
16311641
1642+ def version_from_command (self , flag = '-v' ):
1643+ iflogger .warning ('version_from_command member of CommandLine was '
1644+ 'Deprecated in nipype-1.0.0 and deleted in 2.0.0' )
1645+ cmdname = self .cmd .split ()[0 ]
1646+ env = dict (os .environ )
1647+ if _exists_in_path (cmdname , env ):
1648+ out_environ = self ._get_environ ()
1649+ env .update (out_environ )
1650+ proc = sp .Popen (' ' .join ((cmdname , flag )),
1651+ shell = True ,
1652+ env = env ,
1653+ stdout = sp .PIPE ,
1654+ stderr = sp .PIPE ,
1655+ )
1656+ o , e = proc .communicate ()
1657+ return o
1658+
16321659 def _run_interface (self , runtime , correct_return_codes = (0 ,)):
16331660 """Execute command via subprocess
16341661
0 commit comments