将python模块/包作为二进制文件分发(基于cython的编译)
setuptools-cythonize的Python项目详细描述
setuptools-cythonize提供distutils类来编译python c使用Cython的代码。生成的代码打包到依赖于平台的存档中。
安装
$> pip install setuptools-cythonize
设置配置
将cmdclass关键字添加到设置:
fromsetuptoolsimportsetupfromsetuptools_cythonizeimportget_cmdclasssetup(cmdclass=get_cmdclass(),name="my_package",version="2.0.5",description="My custom library",...)
注意
函数get_cmdclass()forcewheel作为默认格式 (二进制分发的推荐格式)。这种行为可以是 通过传递参数wheel_default=False禁用。
通过设置^{tt7},可以从cythonization中排除某些包。$ 选择。使用函数完成模块名匹配 fnmatch.fnmatchcase。
fromsetuptoolsimportsetupfromsetuptools_cythonizeimportget_cmdclasssetup(cmdclass=get_cmdclass(),name="my_package",...options={'build_py':{'exclude_cythonize':['my_package.subpack*']}},...)
注意
所有以__开头的python模块都被排除在cythonization之外, 其中包括__init__.py文件,该文件是保存python所必需的 包装完整性。
包装
通过执行setup.py文件生成包,所有python模块(除了 在exclude_cythonize中定义的那些将被编译和打包:
$> python setup.py bdist --cythonize
删除--cythonize选项仍可以生成源包:
$> python setup.py bdist