將 *.PY 源代碼編譯成 *.PYD 動態庫,最多可提速 20 - 30%。
Cython v0.29.36 是 3.x 之前的最後一個穩定版本。
Cython v3.x 編譯 PyQt PySide 時,要求信號/槽變量數一緻,否則無法運行。
調用由 Cython 編譯生成的 *.PYD 文件與通過 Python 解釋器運行 *.PY 源代碼,存在些許差異;所以,編譯後的應用程序與源代碼版本也有差異。
由於開發人員 (或理念) 的不同,發布後的代碼由 *.PY 源代碼格式變為 *.PYD 動態庫格式,這種差異就會自然産生。
工程越大,齣現差異的可能性就越高。
若源代碼在某些方麵與 Cython 不完全兼容,自然就有差異。
由於 *.PYD 動態庫比 *.PY 源代碼可提速 20 - 30%,編寫的算法在運行時速度方麵也有差異。
Cython | CPython | 平颱 | 功能 | 操作 | 說明 | 源代碼 | 備注 |
---|---|---|---|---|---|---|---|
0.29.15 | 3.6.8 | Windows amd64 | 模塊路徑名 | 含 - 字符 | 提示找不到此模塊 | 正常 | |
QSettings | 讀取彆名定製容器轉儲值 | 完全不兼容 | 正常 | 引發 _pickle.PicklingError | |||
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 中間代碼 | 不完整 | 正常 | 丟失數字字符 | |||
局部變量 list | 調用 __init__() 特殊方法 | 編譯後無法運行 | 正常 | 引發 TypeError 需要自變量 |
版權聲明: 本文為獨傢原創稿件,版權歸 樂數軟件 ,未經許可不得轉載。