Cython 编译器兼容性


将 *.PY 源代码编译成 *.PYD 动态库,最多可提速 20 - 30%。

Cython v0.29.36 是 3.x 之前的最后一个稳定版本。

产生原因


调用由 Cython 编译生成的 *.PYD 文件与通过 Python 解释器运行 *.PY 源代码,存在些许差异;所以,编译后的应用程序与源代码版本也有差异。

由于开发人员 (或理念) 的不同,发布后的代码由 *.PY 源代码格式变为 *.PYD 动态库格式,这种差异就会自然产生。

工程越大,出现差异的可能性就越高。

若源代码在某些方面与 Cython 不完全兼容,自然就有差异。

由于 *.PYD 动态库比 *.PY 源代码可提速 20 - 30%,编写的算法在运行时速度方面也有差异。

兼容性一览

Cython CPython 平台 功能 操作 说明 源代码 备注
0.29.15 3.6.8 Windows amd64 模块路径名 含 - 字符 提示找不到此模块 正常
0.29.27 3.8.10 Windows amd64 dict 调用 items() 方法 无法编译 正常
3.0.0 3.8.10 Windows amd64 QObject SIGNAL 信号声明 槽自变量数量异于信号 正常 引发 TypeError
str ASCII 文档路径 兼容不完整 正常 不兼容中文路径
*.PY 源代码 *.C 中间代码 不完整 正常 有代码丢失
3.0.2 3.8.10 Windows amd64 与现有模块同名 编译时 import 不编译 正常
open(file, mode="rb") *.C 中间代码 不完整 正常 获取内容为空
数字字符操作 *.C 中间代码 不完整 正常 丢失数字字符

 

版权声明: 本文为独家原创稿件,版权归 乐数软件 ,未经许可不得转载。

内容表

  1. 产生原因
  2. 兼容性一览

 

上一话题

*.PYD 无法导入

下一话题

Cython 如何编译

 

快速搜索