溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python的.py與Cython的.pxd.pyx.pyd 文件格式有什么區(qū)別

發(fā)布時(shí)間:2021-11-23 09:57:13 來源:億速云 閱讀:359 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“Python的.py與Cython的.pxd.pyx.pyd 文件格式有什么區(qū)別”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

.py 文件

Python 最常用格式就是 .py (另一較常用格式為 .pyw),由 python.exe 解釋,可在控制臺(tái)下運(yùn)行。

當(dāng)然,也可用文本編輯器或其它專用 Python IDE (集成開發(fā)環(huán)境) 工具進(jìn)行修改。

常見情形是,用 Python 快速生成程序原型 (有時(shí)甚至是程序最終界面),然后對(duì)其中有特別要求的部分,用更合適的語言改寫;譬如:3D 游戲中的圖形渲染模塊,性能要求特別高,就可用 C/C++ 重寫,而后封裝為 Python 可調(diào)用的擴(kuò)展類庫。需要注意的是,在您使用擴(kuò)展類庫時(shí)可能需要考慮平臺(tái)問題,某些擴(kuò)展類庫可能不提供跨平臺(tái)實(shí)現(xiàn)。

此外,還可采用 Cython 為 Python 編寫 C 擴(kuò)展。Cython 是編寫、包裹外部 C/C++ 庫的膠水代碼,將 CPython 嵌入現(xiàn)有應(yīng)用程序、加速 Python 代碼執(zhí)行的理想 C 模塊語言。

Python的.py與Cython的.pxd.pyx.pyd 文件格式有什么區(qū)別

.pxd文件

.pxd 文件是由 Cython 編程語言 "編寫" 而成的 Python 擴(kuò)展模塊頭文件。

.pxd 文件類似于 C 語言的 .h 頭文件,.pxd 文件中有 Cython 模塊要包含的 Cython 聲明 (或代碼段)。

.pxd 文件可共享外部 C 語言聲明,也能包含 C 編譯器內(nèi)聯(lián)函數(shù)。.pxd 文件還可為 .pyx 文件模塊提供 Cython 接口,以便其它 Cython 模塊可使用比 Python 更高效的協(xié)議與之進(jìn)行通信。

可用 cimport 關(guān)鍵字將 .pxd 文件導(dǎo)入 .pyx 模塊文件中。

.pyx文件

.pyx 文件是由 Cython 編程語言 "編寫" 而成的 Python 擴(kuò)展模塊源代碼文件。

.pyx 文件類似于 C 語言的 .c 源代碼文件,.pyx 文件中有 Cython 模塊的源代碼。

不像 Python 語言可直接解釋使用的 .py 文件,.pyx 文件必須先被編譯成 .c 文件,再編譯成 .pyd (Windows 平臺(tái)) 或 .so (Linux 平臺(tái)) 文件,才可作為模塊 import 導(dǎo)入使用。

.pyd文件

.pyd 文件是非 Python,由其它編程語言 "編寫-編譯" 生成的 Python 擴(kuò)展模塊。

Python 要導(dǎo)入 .pyd 文件,實(shí)際上是在 .pyd 文件中封裝了一個(gè) module。在 python 中使用時(shí),把它當(dāng)成 module 來用就可以了,即:"import 路徑名.modulename" 即可,路徑名為 .pyd 文件所在的路徑。

基于 Qt/C++ 的 PyQt、PySide GUI (圖形用戶界面) 開發(fā)框架綁定,會(huì)為每個(gè) Qt/C++ 庫 .dll 文件生成一個(gè)中間 .pyd 文件。PyWin32 項(xiàng)目分發(fā)包中,也存在很多 MicroSoft Windows OS 相應(yīng) .dll 文件的中間 .pyd 文件。

Cython 可將個(gè)人基于 Python 語言編寫的 Python 模塊編譯成具有 C 語言特性的 .pyd 文件。

“Python的.py與Cython的.pxd.pyx.pyd 文件格式有什么區(qū)別”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI