将python模块/包作为二进制文件分发(基于cython的编译)

setuptools-cythonize的Python项目详细描述


setuptools-cythonize

setuptools-cythonize提供distutils类来编译python c使用Cython的代码。生成的代码打包到依赖于平台的存档中。

cythonization

安装

$> 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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
二进制字符串的java NumberFormatExceprion   java如何在Neo4j中查找/匹配/选择标识符名称   java哪一年的日期与原始年份相同?   java什么时候JAXB可以用于Json而不是XML?   java使用PayPal权限API进行PayPal支付   java Getting error在使用安卓 vision api扫描二维码时加载图像失败   java直接突出显示RichTextFX中的一个文本范围   java Resolve@RegisteredAuth2AuthorizedClient,其令牌在spring Security 5.2的spring server之外获得。十、   yyyymmddhhmmss的Java正则表达式   java我试图将google recaptcha与spring mvc集成,但GreCaptCharResponse总是返回false。这里有一些代码   java使用JsonPath将文本转换为json   java无法解析符号。Maven依赖项已就位,但代码为红色   java使用循环查找范围内具有不同数字的数字   java这个SwingWorker是否不重用ThreadPoolExecutor中的线程?