#!/usr/bin/env python """Install file for example on how to use Cython with Numpy. Note: Cython is the successor project to Pyrex. For more information, see http://cython.org. """ from distutils.core import setup from distutils.extension import Extension import numpy # We detect whether Cython is available, so that below, we can eventually ship # pre-generated C for users to compile the extension without having Cython # installed on their systems. try: from Cython.Distutils import build_ext has_cython = True except ImportError: has_cython = False # Define a cython-based extension module, using the generated sources if cython # is not available. if has_cython: pyx_sources = ['numpyx.pyx'] cmdclass = {'build_ext': build_ext} else: # In production work, you can ship the auto-generated C source yourself to # your users. In this case, we do NOT ship the .c file as part of numpy, # so you'll need to actually have cython installed at least the first # time. Since this is really just an example to show you how to use # *Cython*, it makes more sense NOT to ship the C sources so you can edit # the pyx at will with less chances for source update conflicts when you # update numpy. pyx_sources = ['numpyx.c'] cmdclass = {} # Declare the extension object pyx_ext = Extension('numpyx', pyx_sources, include_dirs = [numpy.get_include()]) # Call the routine which does the real work setup(name = 'numpyx', description = 'Small example on using Cython to write a Numpy extension', ext_modules = [pyx_ext], cmdclass = cmdclass, )