这几年随着Python的流行,Cython也跟着火了,那什么是Cython呢?Cython是C/C++和Python的结合体,基于Pyrex开发,故称为Cython。Cython主要用于将采用C/C++编程语言编写的.c文件或采用Python编程语言编写的.py.pyw文件编译打包成.pyd模块文件,当然也能编译采用Cython规范编写的.pyxpxd文件。
Dython是Digitser(或DigitizingDigitalDigitizationData或Datatechnology)和Python的结合体,故称为Dython。Dython由德云社区基于自身的数字化技术理念提出,乐数软件开发维护的很多应用都有PythonCython的影子;而Dython则是CythonPython的一种统称,也是一种数字化理念的抽象。譬如DyWebDyERPDyPLM中的Dy,文字被简化但含义不变。
pyd文件
.pyd文件是由非Python,其它编程语言编写(或直接把.py文件转换成.c中间文件)编译生成的Python扩展模块,是类似.so.dll动态链接库的一种Python文件。
每个.pyd文件实际上都封装了一个Pythonmodule模块。使用时,采用import路径名.modulename或from路径名.modulenameimport**语言,路径名为.pyd文件所在的路径。
基于QtGUI(图形用户界面)框架的PyQtPySideforPython绑定,会为每个二次开发胶水代码所对应的Qt/C++库.dll文件生成一个中间.pyd文件。PyWin32项目分发包中,也存在很多MicroSoftWindowsOS相应.dll文件的中间.pyd文件(包括编译好的Cython模块本身)。
Cython可将个人基于Python语言编写的Python模块编译成具有C语言特性的.pyd文件。由于.pyc.pyo文件很容易被反编译出源码,而采用.pyd文件在这方面就有不少优势(当比较Cython编译前后源码结果就能看出)。
源码Cythonv3.1.4.2build.源码Cython化批处理工具
工具名源码Cython,打包分布.exe文件请使用源码PyInstaller。
以后不用再一条条输命令,且效率不是一般的高,此工具也是国内外首个深度集成Cython的大批量高效处理工具。
若有使用外部或自定义模块,请把相应路径添加到控制台配置对话框PATH变量框中,批量生成的.PYD文件,都会被移到源代码目录下。
.PY源代码经Cython化后有一些效率提升,虽不是很明显但能感觉到(要求更高请编写.py.pyw.c文件)。Cython文档编制,快速入门教程在此。
Cython会先把.PXD.PY.PYW.PYX文件转换成.C中间代码,再编译成.PYD模块文件;因此,反编译.PYD文件只能获得.C中间代码(无法获得最初源代码)。
编译时会根据所调用的Python解释器版本,自动切换校正.C中间代码相应2.73.x语言级别(自动配置