如何在cython中编译多个文件

uda*_*day 5 python distutils setuptools 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
)
Run Code Online (Sandbox Code Playgroud)

我将其编译为python setup.py build_ext --inplace. 这会将我的文件 at编译util/func1_pc.py到.func1.pydsetup.py

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

谢谢。

Lia*_*all 3

Extension 构造函数允许您指定多个源文件,因此将该ext_modules行更改为:

ext_modules = [Extension('func1', ['util/func1_pc.py', 'util/funct2_pc.py'],)]
Run Code Online (Sandbox Code Playgroud)

应该可以解决问题。

  • 不起作用`'PyInit_func1'的多重定义` (3认同)