python html5 bootstrap 视频教程
德云社区 门户 IT 编程 编程语言 Python 查看内容

Python 的 .py 与 Cython 的 .pxd .pyx .pyd 文件格式之间的主要区别

2018-5-28 21:01| 发布者: digitser| 查看: 3864| 评论: 0|原作者: Python

摘要: Python 的 .py 与 Cython 的 .pxd .pyx .pyd 文件格式之间的主要区别 Python 最常用格式就是 .py (另一较常用格式为 .pyw),由 python.exe 解释,可在控制台下运行。 当然,也可用文本编辑器或其它专用 Python IDE ( ...
AI人工智能 语音助理 人工翻译 教程
Python 的 .py 与 Cython 的 .pxd .pyx .pyd 文件格式之间的主要区别

Python 最常用格式就是 .py (另一较常用格式为 .pyw),由 python.exe 解释,可在控制台下运行。


当然,也可用文本编辑器或其它专用 Python IDE (集成开发环境) 工具进行修改。


常见情形是,用 Python 快速生成程序原型 (有时甚至是程序最终界面),然后对其中有特别要求的部分,用更合适的语言改写;譬如:3D 游戏中的图形渲染模块,性能要求特别高,就可用 C/C++ 重写,而后封装为 Python 可调用的扩展类库。需要注意的是,在您使用扩展类库时可能需要考虑平台问题,某些扩展类库可能不提供跨平台实现。


此外,还可采用 Cython 为 Python 编写 C 扩展。Cython 是编写、包裹外部 C/C++ 库的胶水代码,将 CPython 嵌入现有应用程序、加速 Python 代码执行的理想 C 模块语言。


智能编辑重构 批处理式 数字 Python IDE 集成开发环境 (集成快速高效 Cython PyInstaller 批处理小程序)

http://dt.digitser.cn/zh-CN/ide/idepy/index.html



Cython 批量编译工具

.pxd 文件

.pxd 文件是由 Cython 编程语言 "编写" 而成的 Python 扩展模块头文件。


.pxd 文件类似于 C 语言的 .h 头文件,.pxd 文件中有 Cython 模块要包含的 Cython 声明 (或代码段)。


.pxd 文件可共享外部 C 语言声明,也能包含 C 编译器内联函数。.pxd 文件还可为 .pyx 文件模块提供 Cython 接口,以便其它 Cython 模块可使用比 Python 更高效的协议与之进行通信。


可用 cimport 关键字将 .pxd 文件导入 .pyx 模块文件中。


.pyx 文件

.pyx 文件是由 Cython 编程语言 "编写" 而成的 Python 扩展模块源代码文件。


.pyx 文件类似于 C 语言的 .c 源代码文件,.pyx 文件中有 Cython 模块的源代码。


不像 Python 语言可直接解释使用的 .py 文件,.pyx 文件必须先被编译成 .c 文件,再编译成 .pyd (Windows 平台) 或 .so (Linux 平台) 文件,才可作为模块 import 导入使用。


.pyd 文件

.pyd 文件是非 Python,由其它编程语言 "编写-编译" 生成的 Python 扩展模块。


Python 要导入 .pyd 文件,实际上是在 .pyd 文件中封装了一个 module。在 python 中使用时,把它当成 module 来用就可以了,即:"import 路径名.modulename" 即可,路径名为 .pyd 文件所在的路径。


基于 Qt/C++ 的 PyQt、PySide GUI (图形用户界面) 开发框架绑定,会为每个 Qt/C++ 库 .dll 文件生成一个中间 .pyd 文件。PyWin32 项目分发包中,也存在很多 MicroSoft Windows OS 相应 .dll 文件的中间 .pyd 文件。


Cython 可将个人基于 Python 语言编写的 Python 模块编译成具有 C 语言特性的 .pyd 文件。


源码 Cython 化工具

官方链接,分发打包 .exe 文件工具 源码 PyInstaller


编译时会根据所调用的 Python 解释器版本,自动切换 校正 .C 中间代码相应 2.7 3.x 语言级别。


.PY 源代码经 Cython 化后有一些效率提升, 虽不是很明显但能感觉到。Cython 文档编制,快速入门教程在此。


Cython 会先把 .PXD .PY .PYW .PYX 文件转换成 .C 中间代码, 再编译成 .PYD 模块文件; 因此, 反编译 .PYD 文件只能获得 .C 中间代码 (无法获得最初源代码)。


扫一扫关注 德云社区

版权声明:本文为独家原创稿件,版权归 德云社区,未经许可不得转载。

路过

雷人

握手

鲜花

鸡蛋

相关阅读

最新评论

相关分类

QtGui QTextCharFormat() QPlainTextEdit() 最好在使用时才设置
QtGui QTextCharFormat() QPlainTextEdit() 最好在使用时才设置 当实例化 QPlainTextEdit() QTextEdit() 使用 QtGui QTextCharFormat() 与 setCurrentCharFormat() 设置要[113/2020-11-04]
PySide6出来了 PySide2却还未完全稳定 不能用于生产环境
PySide6出来了 PySide2却还未完全稳定 不能用于生产环境 PySide6 正式成为官方文档名 (见下方链接),何时成为官方工程名称,等 Python for Qt 6 正式对外发布就可知。 Ren[129/2020-11-03]
psutil 5.7.0 官方中文文档编制 中文手册教程 人工翻译
psutil 5.7.0 官方中文文档编制 中文手册教程 人工翻译 网页背景为黑色以保护视力,未上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译为 psutil 5.7.0。 psu[199/2020-10-19]
psutil 5.7.0 中文文档编制 中文手册教程 人工翻译 更新日志
psutil 5.7.0 中文文档编制 中文手册教程 人工翻译 更新日志 网页背景为黑色以保护视力,未上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译为 psutil 5.7.0。[24/2020-10-19]
PyQt 4.11.4 for Qt 4.8.7 中文文档编制 手册 人工翻译 更新日志
PyQt 4.11.4 for Qt 4.8.7 中文文档编制 手册 人工翻译 更新日志 最近把网页背景由白色改为黑色,保护视力,不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工[27/2020-10-19]
数字 IDE 网页 2019 - HTML Bootstrap网站站群 集成开发环境 编辑器
数字 IDE 网页 2019 - HTML Bootstrap网站站群 集成开发环境 编辑器 数字化 Web 网页 IDE 采用 应用 + 小程序 方式架构,结合 精确-模糊 批量查找-修改-比对 多文件-多工程[244/2020-10-08]
JavaScript Web-API DOM 官方中文文档编制 中文手册教程 人工翻译
JavaScript Web-API DOM 官方中文文档编制 中文手册教程 人工翻译 网页背景为黑色以保护视力,未上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译为 2020 年 9[58/2020-10-05]
JavaScript Web-API DOM 官方中文文档编制 中文手册教程 更新日志
JavaScript Web-API DOM 官方中文文档编制 中文手册教程 更新日志 网页背景为黑色以保护视力,未上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译为 2020 年 9[28/2020-10-05]
Cython 0.29.6 官方中文文档编制 官方教程 人工翻译 更新日志
Cython 0.29.6 官方中文文档编制 官方教程 人工翻译 更新日志 Cython 0.29.6 中文文档编制采用机器辅助 + 全人工翻译,完全采用 数字翻译 的文档翻译流程进行汉化 (未采用[135/2020-08-08]
Cython 0.29.6 官方中文文档编制 官方教程 手册 全人工翻译
Cython 0.29.6 官方中文文档编制 官方教程 手册 全人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 Cython 0.29.6。 Cython 0.29.6 [229/2020-08-08]
Qt 4.8.7 官方中文文档编制 教程 在线手册 人工翻译 更新日志
Qt 4.8.7 官方中文文档编制 教程 在线手册 人工翻译 更新日志 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 Qt 4.8.7。 Qt 4.8.7 中文文档[65/2020-08-08]
PyInstaller 3.6 官方中文文档编制 官方教程 人工翻译 更新日志
PyInstaller 3.6 官方中文文档编制 官方教程 人工翻译 更新日志 PyInstaller 3.6 中文文档编制采用机器辅助 + 全人工翻译,完全采用 数字翻译 的文档翻译流程进行汉化 (未[81/2020-08-08]
PyInstaller 3.6 官方中文文档编制 官方教程 手册 全人工翻译
PyInstaller 3.6 官方中文文档编制 官方教程 手册 全人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 PyInstaller 3.6。 PyInstalle[111/2020-08-08]
Qt 4.8.7 官方中文文档编制 在线手册 官方教程 全人工翻译
Qt 4.8.7 官方中文文档编制 在线手册 官方教程 全人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 Qt 4.8.7。 Qt 4.8.7 中文文档编[62/2020-08-08]
Python2.7.18 官方中文文档编制 标准库教程 帮助文件 更新日志
Python2.7.18 官方中文文档编制 标准库教程 帮助文件 更新日志 CPython 2.7 原定于 2020 年 01 月 停止维护, 但官方却又于 2020 年 04 月发布了 CPython 2.7.18。 感谢德[63/2020-08-05]

Archiver|Sitemap|小黑屋|德云社区   

GMT+8, 2020-11-25 05:10 , Processed in 0.058612 second(s), 27 queries .

工业和信息化部: 粤ICP备14079481号-2

技术支持 乐数软件     版权所有 © 2014-2021 德云社区    

返回顶部