Cython的新手。我在名为setup.py
的文件中使用以下代码段将另一个文件编译为Cython
(SO用户通过here向我建议):
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
的文件编译到func1.pyd
目录中的setup.py
。
假设我现在有两个文件:util/funct1_pc.py
和util/funct2_pc.py
。是否有人可以建议如何修改上述代码段以生成func1.pyd
和func2.pyd
?
感谢。
答案 0 :(得分:3)
Extension constructor允许您指定多个源文件,因此将ext_modules
行更改为:
ext_modules = [Extension('func1', ['util/func1_pc.py', 'util/funct2_pc.py'],)]
应该这样做。
答案 1 :(得分:1)
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'
)
)