Cython setup.py for several .pyx

别来无恙 提交于 2020-01-09 19:44:40

问题


I would like to cythonize faster. 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 to cythonize

  • several files with ext .pyx, that i will call by their name

  • all .pyx files in a folder

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


回答1:


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"]),
)



回答2:


The answer above wasn't completely clear to me. To cythonize two files in different directories, simply list them inside of the cythonize(...) function:

from distutils.core import setup
from Cython.Build import cythonize

setup(
    ext_modules = cythonize(["folder1/file1.pyx", "folder2/file2.pyx"])
)


来源:https://stackoverflow.com/questions/21826137/cython-setup-py-for-several-pyx

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!