【发布时间】:2013-11-07 22:40:31
【问题描述】:
我在一个包中有多个 .py 文件
packageA
\__init__.py
\mod1.py
\mod2.py
\mod3.py
我可以配置 cython 进行编译然后将它们全部打包到一个 packageA.pyd 中吗?
【问题讨论】:
标签: cython
我在一个包中有多个 .py 文件
packageA
\__init__.py
\mod1.py
\mod2.py
\mod3.py
我可以配置 cython 进行编译然后将它们全部打包到一个 packageA.pyd 中吗?
【问题讨论】:
标签: cython
就个人而言,我最好将所有.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 的模块,我不知道这对你来说是否可以接受,或者你的包中是否真的需要不同的模块。
但可能还有其他更适合您的问题的方法...
【讨论】: