亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 中 .py文件 轉(zhuǎn) .pyd文件的操作

瀏覽:100日期:2022-06-26 14:07:26
pyd文件生成

安裝easycython庫(kù)

pip install easycython

test.py

def test(): print('調(diào)用成功')

main.py

import testtest.test()

test.py文件重命名為:test.pyx

python 中 .py文件 轉(zhuǎn) .pyd文件的操作

終端運(yùn)行命令

easycython *.pyx

python 中 .py文件 轉(zhuǎn) .pyd文件的操作

重命名pyd文件,刪除:cp36-win_amd64.

python 中 .py文件 轉(zhuǎn) .pyd文件的操作

運(yùn)行代碼,調(diào)用成功:

python main.py

python 中 .py文件 轉(zhuǎn) .pyd文件的操作

代碼實(shí)現(xiàn)

import globimport osdef get_file_path(path, file_type): ''' 取文件夾下相同后綴文件路徑列表 :param path: 文件夾路徑 :param file_type: 后綴名 :return:文件路徑列表 ''' paths = glob.glob(os.path.join(path, file_type )) return pathsdef str_replace(old_str,old,new): ''' 在 old_str 字符串中,把 old 替換成 new :param old_str:原字符串 :param old:被替換的字符 :param new:替換后的字符 :return:替換后的字符串 ''' new_str = old_str.replace(old,new) # print('new_str:',new_str) return new_strdef py_to_pyd(path_dir,middle_name_pyd): ''' .py 文件 轉(zhuǎn) .pyd文件 :param path_dir:.py文件所在的文件夾路徑 :param middle_name_pyd:pyd的中間名,如: .cp36-win_amd64 :return: ''' # .py 文件 轉(zhuǎn)成 .pyx文件 file_type = ’*.py’ paths = get_file_path(path_dir, file_type) # print(paths) for pa in paths: new_str = str_replace(pa, ’py’, ’pyx’) os.rename(pa, new_str) # main.pyx 轉(zhuǎn)成 main.py old_name = path_dir + r’main.pyx’ new_name = path_dir + r’main.py’ os.rename(old_name,new_name) # 把 pyx 轉(zhuǎn)成 pyd os.system('cd {} && easycython *.pyx '.format(path_dir)) # 刪除所有 .html 文件 file_type = ’*.html’ paths = get_file_path(path_dir, file_type) # print(paths) for pa in paths: os.remove(pa) # 刪除所有 .pyx 文件 file_type = ’*.pyx’ paths = get_file_path(path_dir, file_type) # print(paths) for pa in paths: os.remove(pa) # 刪除所有 .c 文件 file_type = ’*.c’ paths = get_file_path(path_dir, file_type) # print(paths) for pa in paths: os.remove(pa) # 刪除名字中的 .pyd文件 中的 cp36-win_amd64 file_type = ’*.pyd’ paths = get_file_path(path_dir, file_type) # print(paths) for pa in paths: new_str = str_replace(pa, middle_name_pyd, ’’) os.rename(pa,new_str)if __name__ == ’__main__’: path_dir = r'C:UsersxiahuadongDesktopnumber_humen - 副本' middle_name_pyd = ’.cp36-win_amd64’ py_to_pyd(path_dir, middle_name_pyd)

補(bǔ)充:Python 常見(jiàn)文件格式 .py .pyc .pyw .pyo .pyd 之間的主要區(qū)別

Python([ˈpaɪθən])是一種面向?qū)ο?、解釋型?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。Python語(yǔ)法簡(jiǎn)潔、清晰,具有豐富和強(qiáng)大的類(lèi)庫(kù)。

Python源代碼遵循GPL(GNU General Public License)協(xié)議,由Guido van Rossum于1989年底發(fā)明,第一個(gè)公開(kāi)發(fā)行版發(fā)行于1991年。

Python常被稱(chēng)為膠水語(yǔ)言,能把用其他語(yǔ)言編寫(xiě)的各模塊(尤其是C/C++)輕松地聯(lián)結(jié)在一起。常見(jiàn)情形是,用Python快速生成程序原型(有時(shí)甚至是程序最終界面),然后對(duì)其中有特別要求的部分,用更合適的語(yǔ)言改寫(xiě);譬如:3D游戲中的圖形渲染模塊,性能要求特別高,就可用C/C++重寫(xiě),而后封裝為Python可調(diào)用的擴(kuò)展類(lèi)庫(kù)。需要注意的是,在您使用擴(kuò)展類(lèi)庫(kù)時(shí)可能需要考慮平臺(tái)問(wèn)題,某些擴(kuò)展類(lèi)庫(kù)可能不提供跨平臺(tái)實(shí)現(xiàn)。

一般認(rèn)為,Python 是一種解釋性語(yǔ)言,Python 在執(zhí)行時(shí),會(huì)先將 .py 文件中的源代碼編譯成 byte code(字節(jié)碼),然后再由 Python Virtual Machine 來(lái)執(zhí)行這些編譯 byte code。

這種機(jī)制的基本思想跟 Java、.NET 一致;但 Python Virtual Machine 與 Java 或 .NET 的 Virtual Machine 不同的是:Python 的 Virtual Machine 是一種更高級(jí)的 Virtual Machine。這里的高級(jí)并不是通常意義上的高級(jí),不是說(shuō) Python 的 Virtual Machine 比 Java 或 .NET 的功能更強(qiáng)大,更拽,而是說(shuō)和 Java 或 .NET 相比,Python 的 Virtual Machine 距真實(shí)機(jī)器的距離更遠(yuǎn)。或者可以這么說(shuō),Python 的 Virtual Machine 是一種抽象層次更高的 Virtual Machine。

Python 提供了一種中間編譯結(jié)果保存機(jī)制,即 byte code,或更準(zhǔn)確地說(shuō),保存 PyCodeObject。事實(shí)上,Python 確實(shí)提供了這樣一種機(jī)制 —— .pyc 文件。在執(zhí)行一個(gè) .py 文件的源代碼之后,Python 并不會(huì)自動(dòng)生成與該 .py 文件對(duì)應(yīng)的 .pyc 文件。Python 會(huì)根據(jù)需要自動(dòng)觸發(fā)、創(chuàng)建 .pyc 文件,原理很簡(jiǎn)單,就是利用 Python 的 import 機(jī)制。

在 Python 運(yùn)行過(guò)程中如碰到 import abc 這樣的語(yǔ)句,Python 將會(huì)在設(shè)定好的 path 中尋找 abc.pyc 或 abc.dll 文件。若沒(méi)有這樣的文件,而只是發(fā)現(xiàn)了 abc.py 文件,那么,Python 會(huì)首先將 abc.py 編譯成相應(yīng)的 PyCodeObject 中間結(jié)果,然后再創(chuàng)建 abc.pyc 文件,并將中間結(jié)果寫(xiě)入該文件。接下來(lái),Python 才會(huì)對(duì) abc.pyc 文件進(jìn)行一個(gè) import 動(dòng)作,實(shí)際上也就是將 abc.pyc 文件中的 PyCodeObject 重新在內(nèi)存中復(fù)制出來(lái),加以運(yùn)行。

由于 Python .pyc 文件的此種運(yùn)行機(jī)制,所以,可隨時(shí)刪除所有中間過(guò)程 .pyc 文件,當(dāng) Python 再次運(yùn)行時(shí),還會(huì)重生成這些 .pyc 文件,對(duì)您所編輯程序的運(yùn)行并無(wú)任何影響。當(dāng)然,得有源代碼才行。

視窗用 python.exe 運(yùn)行 .py ,用 pythonw.exe 運(yùn)行 .pyw。因?yàn)榘惭b視窗版 Python 時(shí),擴(kuò)展名 .py 自動(dòng)被登記為用 python.exe 運(yùn)行, 而 .pyw 則被登記為用 pythonw.exe 運(yùn)行。

.py 文件

以 .py 作擴(kuò)展名的文件是 Python 源代碼文件,由 python.exe 解釋?zhuān)稍诳刂婆_(tái)下運(yùn)行。當(dāng)然,也可用文本編輯器進(jìn)行修改。

.pyc 文件以 .pyc 作擴(kuò)展名的文件是 python 編譯文件。.pyc 文件是不能用文本編輯器進(jìn)行編輯的,其優(yōu)點(diǎn)是 .pyc 文件的執(zhí)行速度要遠(yuǎn)快于 .py 文件。至于為什么要有 .pyc 文件,這個(gè)需求太明顯了,因?yàn)?.py 文件是可直接看到源碼的,若是軟件開(kāi)發(fā)商的話(huà),不可能把源碼泄漏出去?所以,就需編譯成 .pyc 后再發(fā)布。

.pyw 文件

.pyc 文件執(zhí)行時(shí),桌面會(huì)出現(xiàn)類(lèi)似 CMD 命令的黑色 shell 窗口,十分難看,于是 .pyw 文件就應(yīng)運(yùn)而生了。.pyw 文件與 .pyc 文件的執(zhí)行,本質(zhì)上并沒(méi)什么區(qū)別,只是 .pyw 文件執(zhí)行的時(shí)候不會(huì)出現(xiàn)類(lèi)似 CMD 命令的黑色 shell 窗口。

.pyw 文件格式主要是設(shè)計(jì)用來(lái)運(yùn)行純 GUI 圖形用戶(hù)界面程序的。 純 GUI 圖形用戶(hù)界面程序的用戶(hù)不需要看到類(lèi)似 CMD 命令的黑色 shell 控制臺(tái)窗口。.pyw 文件運(yùn)行時(shí),所有 stdout、stderr 輸出無(wú)效,所有原 stdin 的讀取只會(huì)得到 EOF。值得一提的是,開(kāi)發(fā)純 GUI 圖形用戶(hù)界面程序時(shí),可暫時(shí)把 .pyw 改成 .py,以便運(yùn)行時(shí)調(diào)出控制臺(tái)窗口,看到所有錯(cuò)誤信息,方便修改、調(diào)試。

.pyo 文件

.pyo 文件是優(yōu)化編譯后的程序。 “python -O 源文件” 即可將源程序編譯為 .pyo 文件。同樣,.pyo 文件也是不能用文本編輯器進(jìn)行編輯的。

.pyd 文件

.pyd 文件并不是用 python 編寫(xiě)成的,.pyd 文件一般是其他語(yǔ)言編寫(xiě)的 python 擴(kuò)展模塊。.pyd 文件是用 D 語(yǔ)言按照一定格式編寫(xiě),并處理成二進(jìn)制的文件。

那么什么是 “D 語(yǔ)言” 呢?它是 C/C++ 的綜合進(jìn)化版,不僅具有二者 的全部?jī)?yōu)點(diǎn),且整體性能更佳,但其抽象程度高。

D 語(yǔ)言最初由 Digital Mars 公司就職的 Walter Bright 于 2001 年發(fā)布,意圖改進(jìn) C++ 語(yǔ)言。目前最新 D 語(yǔ)言被簡(jiǎn)稱(chēng)為 D2。最主要的 D 語(yǔ)言的實(shí)現(xiàn)是 DMD。

D 語(yǔ)言源自 C/C++,借鑒了眾多編程語(yǔ)言的特色和現(xiàn)代編譯器技術(shù),融會(huì)貫通了設(shè)計(jì)者豐富的實(shí)踐經(jīng)驗(yàn),使之具備了非凡的威力 ── 既有 C/C++ 語(yǔ)言的強(qiáng)大威力,又有 Python 和 Ruby 的開(kāi)發(fā)效率。它集眾多系統(tǒng)級(jí)編程所需的功能于一身,例如垃圾回收、手工內(nèi)存操作、契約式設(shè)計(jì)、高級(jí)模板技術(shù)、內(nèi)嵌匯編、內(nèi)置單元測(cè)試、Mixin 風(fēng)格多繼承、類(lèi) Java 包管理機(jī)制、內(nèi)置同步機(jī)制、內(nèi)建基本運(yùn)行時(shí)信息。

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

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 成 年 人 黄 片 大全 | 免费的很黄很色的床小视频 | 秀人网艾小青国产精品视频 | 在线免费一区二区 | 中文字幕国产欧美 | 五月综合激情久久婷婷 | 九九久久国产 | 国产爽片在线观看 | 欧美一区二区三区免费 | 免费看一级视频 | 黄色一级毛片免费 | 成人欧美一区二区三区视频不卡 | 亚洲一区黄色 | 精品成人免费播放国产片 | 中国美女黄色一级片 | 成人三级精品视频在线观看 | 国产三级视频在线观看视主播 | 免费网站看黄 | 一级α片 | 亚洲视频不卡 | 久久久亚洲 | 欧美三级黄色大片 | 久久97超级碰碰碰 | 我要看一级黄色 | 精品久久久一二三区 | 特黄特黄 | 一级片免费在线 | 国产或人精品日本亚洲77美色 | 成年男女免费视频网站 | 日韩中文字幕免费观看 | 久色tv| 国产aaa免费视频国产 | 久久综合免费视频 | 手机在线观看黄色网址 | 久久99国产亚洲精品 | 国产欧美另类久久精品91 | 一级视频在线 | 国产精品成人h片在线 | 黄色录像免费看 | 九九精品免视频国产成人 | 国产视频高清在线观看 |