Cython setup.py for multiple .pyx

I would like faster cythonize. The code for one .pyx is

from distutils.core import setup from Cython.Build import cythonize setup( ext_modules = cythonize("MyFile.pyx") ) 

What if i want cythonize

  • several files with ext.pyx, which I will call by their name

  • all .pyx files in a folder

What will be the python code for setup.py in both cases?

+8
python installation compilation setup.py cython
source share
2 answers

From: https://github.com/cython/cython/wiki/enhancements-distutils_preprocessing

 # several files with ext .pyx, that i will call by their name from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext ext_modules=[ Extension("primes", ["primes.pyx"]), Extension("spam", ["spam.pyx"]), ... ] setup( name = 'MyProject', cmdclass = {'build_ext': build_ext}, ext_modules = ext_modules, ) 


 # all .pyx files in a folder from distutils.core import setup from Cython.Build import cythonize setup( name = 'MyProject', ext_modules = cythonize(["*.pyx"]), ) 
+18
source share

The answer above was not completely clear to me. To cythonize two files in different directories, just list them inside the cythonize (...) function:

 from distutils.core import setup from Cython.Build import cythonize setup( ext_modules = cythonize(["folder1/file1.pyx", "folder2/file2.pyx"]) ) 
+6
source share

All Articles