#!/usr/bin/env python import os import sys import subprocess def compile(fname): parts=os.path.splitext(fname) fid=open('setup_cython.py','w') fid.write("""from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext try: import numpy incdirs=[numpy.get_include()] except ImportError: incdirs=[] print "Can't import numpy" setup( name = 'Demos', ext_modules=[ Extension("%s", ["%s"], include_dirs = incdirs) ], cmdclass = {'build_ext': build_ext} ) """ % (parts[0],fname)) fid.close() if sys.platform=='win32': cmdlist='c:/python25/python setup_cython.py build_ext --inplace'.split() output=subprocess.Popen( cmdlist,stdin=subprocess.PIPE, stdout=subprocess.PIPE,stderr=subprocess.PIPE) S=''.join(output.stdout.readlines())+''.join(output.stderr.readlines()) print S else: cmdlist='python setup_cython.py build_ext --inplace'.split() os.system(' '.join(cmdlist)) if __name__=="__main__": if len(sys.argv)==1: print "Usage: %s filename.py" % sys.argv[0] compile(sys.argv[1])