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

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

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

摘要: Python 的 .py 与 Cython 的 .pxd .pyx .pyd 文件格式之间的主要区别 Python 最常用格式就是 .py (另一较常用格式为 .pyw),由 python.exe 解释,可在控制台下运行。 当然,也可用文本编辑器或其它专用 Python IDE ( ...
自动立式分页纸箱赋码系统 ── 全自动 专业 立式分页 瓦楞纸 水性油墨 贴标 喷码 检测系统
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 中间代码 (无法获得最初源代码)。


扫一扫关注 德云社区

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

路过

雷人

握手

鲜花

鸡蛋
AI人工智能 语音助理 人工翻译 教程

相关阅读

最新评论

相关分类

Python 3.9.7 非官方中文文档编制 手册帮助文件 人工翻译
Python 3.9.7 非官方中文文档编制 手册帮助文件 人工翻译 网页背景由之前的白色主题,切换成黑色主题,保护视力及增强阅读体验。 感谢 德云社区 和 乐数软件 的支持,由本[37/2021-09-12]
Cython 模块扩展 - 编程语言 替代实现 应用领域 汇总一览
Python 模块扩展 - 编程语言 替代实现 应用领域 汇总一览 Python 本身是一种编程语言规范,可以使用其它编程语言实现它或扩展它;譬如:采有 Python C Java .Net 等重实现[22/2021-09-11]
Python 3.4.4 非官方中文文档编制 手册帮助文件 人工翻译
Python 3.4.4 非官方中文文档编制 手册帮助文件 人工翻译 网页背景由之前的白色主题,切换成黑色主题,保护视力及增强阅读体验。 感谢德云社区 广州德数 乐数软件 的支持[62/2021-08-29]
从 Qt 6.0 起移除QtWidgets::QDesktopWidget 之后使用QtGui::QScreen 代替
从 Qt 6.0 起移除QtWidgets :: QDesktopWidget 之后使用QtGui :: QScreen 代替 QtWidgets :: QDesktopWidget 在 Qt 5.9 中还有不少独立定义函数、信号、重实现保护函数,但[52/2021-08-24]
gb18030-2005 - 含少数民族文字 70000个汉字的中文字符编码集
gb18030-2005 - 含少数民族文字 70000个汉字的中文字符编码集 GB18030有两个版本:GB18030-2000和GB18030-2005。 GB18030-2005与GB18030-2000的编码体系结构是完全相同的[80/2021-08-12]
Django - 采用MTV模式 BSD协议的Python自由开源Web应用框架
Django - 采用MTV模式 BSD协议的Python自由开源Web应用框架 Django(发音:)是一种用python语言编写的,可快速开发、实用雅洁的自由开源高级web应用框架(open source web fr[104/2021-07-31]
Wing IDE - 快速 功能强大的Python Django PyQt集成开发环境
Wing IDE - 快速 功能强大的Python Django PyQt集成开发环境 Wing IDE是Python语言集成开发环境IDE,包含大量语法标签高亮显示。与其他类似IDE相比,其最大特色是可以调试[48/2021-07-31]
PyPDF2 1.26.0 官方中文文档编制 中文手册 中文帮助 更新日志
PyPDF2 1.26.0 官方中文文档编制 中文手册 中文帮助 更新日志 本文档编制还适于 PyPDF3 新版用户。 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译[40/2021-07-28]
PyPDF2 1.26.0 官方中文文档编制 中文手册 中文帮助 全人工翻译
PyPDF2 1.26.0 官方中文文档编制 中文手册 中文帮助 全人工翻译 本文档编制还适于 PyPDF3 新版用户。 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻[94/2021-07-28]
OpenPyXL 3.0.7 官方中文文档编制 中文手册帮助 全人工翻译
OpenPyXL 3.0.7 官方中文文档编制 中文手册帮助 全人工翻译 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 OpenPyXL 3.0.7。 OpenPyXL 3.0.[76/2021-07-28]
OpenPyXL 3.0.7 官方中文文档编制 中文手册帮助 更新日志
OpenPyXL 3.0.7 官方中文文档编制 中文手册帮助 更新日志 以后不再上传 en-US 官方原版文档编制,目前上传的最新 zh-CN 人工翻译版本为 OpenPyXL 3.0.7。 OpenPyXL 3.0.7 [47/2021-07-28]
Microsoft .NET 4.6.1 for Win7 SP1-10 x86-x64-AllOS-ENU 官方离线安装包
Microsoft .NET 4.6.1 for Win7 SP1-10 x86-x64-AllOS-ENU 官方离线安装包 注意:Microsoft .NET 4.6.2 不支持 Win7 SP1。 Microsoft .NET 4.6.1 发行于 2015/11/17,支持[62/2021-07-18]
Visual Studio Community 2017 2019 - 简化版微软 VC 构建编译工具
Visual Studio Community 2017 2019 - 简化版微软 VC 构建编译工具 Visual Studio Community 2017 版和 Visual Studio Community 2019 版安装包体积过大,安装占用空间多时[52/2021-07-18]
PotPlayer - 功能强大 内置解码器齐全 以VC++编写的播放器
PotPlayer - 功能强大 内置解码器齐全 以VC++编写的播放器 PotPlayer 是 KMPlayer 的 (韩国) 原制作者姜龙喜先生进入 Daum 公司后用 C++ 完全重写的新一代播放器作品。PotP[204/2021-06-20]
数字 Python IDE 2021 注册机 注册码生成器 附详细破解方法
数字 Python IDE 2021 注册机 注册码生成器 附详细破解方法 完整 完美破解补丁 注册机 注册码生成器,破解后与 VIP 客户在功能方面没有任何区别。 数字 Python IDE 和数[141/2021-06-17]

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

GMT+8, 2021-9-25 00:07 , Processed in 0.026271 second(s), 27 queries .

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

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

返回顶部