使用cython为一组文件制作一个pyd

时间:2013-10-28 23:29:13

标签: cython

我在一个软件包中有多个.py文件

packageA
    \__init__.py
    \mod1.py
    \mod2.py
    \mod3.py

我可以配置cython进行编译,然后将它们打包在一个packageA.pyd中吗?

1 个答案:

答案 0 :(得分:3)

就个人而言,我最好将所有.py个文件转换为.pyx,然后将它们包含在Cython扩展程序的主.pyx中:

packageA.pyx

include "mod1.pyx" 
include "mod2.pyx" 
include "mod3.pyx" 

然后,使用setup.py进行编译,如下所示:

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

setup(
    cmdclass = {'build_ext': build_ext},
    ext_modules = [
        Extension("packageA", sources=["packageA.pyx"])
    ]
)                       

运行此命令会生成一个packageA.pyd二进制文件。 当然,这将输出一个名为packageA的模块,我不知道这是否可以接受,或者您是否真的需要包中的不同模块。 但可能还有其他方法可以更好地适应您的问题...