如何在cython中编译多个文件

how to compile multiple files in cython

Cython 新手。我在名为 setup.py 的文件中使用以下代码片段将另一个文件编译为 Cython(SO 用户通过 向我建议):

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

ext_modules = [Extension('func1', ['util/func1_pc.py'],)]

setup(
    name="Set 1 of Functions",
    cmdclass={'build_ext': build_ext},
    ext_modules=ext_modules
)

我编译为python setup.py build_ext --inplace。这会将我位于 util/func1_pc.py 的文件编译成 setup.py.

目录中的 func1.pyd

假设我现在有两个文件:util/funct1_pc.pyutil/funct2_pc.py。有人可以建议如何修改上面的代码片段以从中生成 func1.pydfunc2.pyd 吗?

谢谢。

Extension constructor 允许您指定多个源文件,因此将 ext_modules 行更改为:

ext_modules = [Extension('func1', ['util/func1_pc.py', 'util/funct2_pc.py'],)]

应该可以解决问题。

run_cython.pyx - 与 setup.py 的目录

处于同一级别的文件

compilled.pyx - 目录中的文件,与 setup.py 的目录

位于同一层
from distutils.core import setup
from Cython.Build import cythonize

setup(ext_modules = cythonize(
    'run_cython.pyx',
    './app/compilled.pyx'
)
)