几个.pyx的Cython setup.py

kir*_*off 16 python installation compilation cython setup.py

我想更快地进行cythonize.一个.pyx的代码是

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

setup(
    ext_modules = cythonize("MyFile.pyx")
)
Run Code Online (Sandbox Code Playgroud)

如果我想要cythonize怎么办?

  • 有几个ext .pyx的文件,我会用他们的名字打电话

  • 文件夹中的所有.pyx文件

在两种情况下,setup.py的python代码是什么?

ilj*_*jau 25

来自: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,
)
Run Code Online (Sandbox Code Playgroud)


# all .pyx files in a folder
from distutils.core import setup
from Cython.Build import cythonize

setup(
  name = 'MyProject',
  ext_modules = cythonize(["*.pyx"]),
)
Run Code Online (Sandbox Code Playgroud)


Nai*_*aba 14

上面的答案对我来说并不完全清楚.要对不同目录中的两个文件进行cython化,只需在cythonize(...)函数中列出它们:

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

setup(
    ext_modules = cythonize(["folder1/file1.pyx", "folder2/file2.pyx"])
)
Run Code Online (Sandbox Code Playgroud)