diff options
-rw-r--r-- | numpy/distutils/lib2def.py | 11 | ||||
-rw-r--r-- | numpy/distutils/mingw32ccompiler.py | 8 | ||||
-rw-r--r-- | numpy/distutils/misc_util.py | 6 |
3 files changed, 16 insertions, 9 deletions
diff --git a/numpy/distutils/lib2def.py b/numpy/distutils/lib2def.py index 583f244c0..a486b13bd 100644 --- a/numpy/distutils/lib2def.py +++ b/numpy/distutils/lib2def.py @@ -1,6 +1,7 @@ import re import sys import os +import subprocess __doc__ = """This module generates a DEF file from the symbols in an MSVC-compiled DLL import library. It correctly discriminates between @@ -59,13 +60,13 @@ libfile, deffile = parse_cmd()""" deffile = None return libfile, deffile -def getnm(nm_cmd = 'nm -Cs python%s.lib' % py_ver): +def getnm(nm_cmd = ['nm', '-Cs', 'python%s.lib' % py_ver]): """Returns the output of nm_cmd via a pipe. nm_output = getnam(nm_cmd = 'nm -Cs py_lib')""" - f = os.popen(nm_cmd) - nm_output = f.read() - f.close() + f = subprocess.Popen(nm_cmd, shell=True, stdout=subprocess.PIPE) + nm_output = f.stdout.read() + f.stdout.close() return nm_output def parse_nm(nm_output): @@ -107,7 +108,7 @@ if __name__ == '__main__': deffile = sys.stdout else: deffile = open(deffile, 'w') - nm_cmd = '%s %s' % (DEFAULT_NM, libfile) + nm_cmd = [str(DEFAULT_NM), str(libfile)] nm_output = getnm(nm_cmd) dlist, flist = parse_nm(nm_output) output_def(dlist, flist, DEF_HEADER, deffile) diff --git a/numpy/distutils/mingw32ccompiler.py b/numpy/distutils/mingw32ccompiler.py index 5975272b2..3c7bd2fdc 100644 --- a/numpy/distutils/mingw32ccompiler.py +++ b/numpy/distutils/mingw32ccompiler.py @@ -9,6 +9,7 @@ Support code for building Python extensions on Windows. """ import os +import subprocess import sys import log @@ -50,9 +51,10 @@ class Mingw32CCompiler(distutils.cygwinccompiler.CygwinCCompiler): # get_versions methods regex if self.gcc_version is None: import re - out = os.popen('gcc -dumpversion','r') - out_string = out.read() - out.close() + p = subprocess.Popen(['gcc', '-dumpversion'], shell=True, + stdout=subprocess.PIPE) + out_string = p.stdout.read() + p.stdout.close() result = re.search('(\d+\.\d+)',out_string) if result: self.gcc_version = StrictVersion(result.group(1)) diff --git a/numpy/distutils/misc_util.py b/numpy/distutils/misc_util.py index 23848b72a..1ba44d89f 100644 --- a/numpy/distutils/misc_util.py +++ b/numpy/distutils/misc_util.py @@ -6,6 +6,7 @@ import copy import glob import atexit import tempfile +import subprocess try: set @@ -1340,7 +1341,10 @@ class Configuration(object): revision = None m = None try: - sin, sout = os.popen4('svnversion') + p = subprocess.Popen(['svnversion'], shell=True, + stdout=subprocess.PIPE, stderr=STDOUT, + close_fds=True) + sout = p.stdout m = re.match(r'(?P<revision>\d+)', sout.read()) except: pass |