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

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

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

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

安裝easycython庫

pip install easycython

test.py

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

main.py

import testtest.test()

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

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

終端運行命令

easycython *.pyx

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

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

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

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

python main.py

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

代碼實現(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)

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

Python([ˈpaɪθən])是一種面向?qū)ο蟆⒔忉屝陀嬎銠C程序設(shè)計語言。Python語法簡潔、清晰,具有豐富和強大的類庫。

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

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

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

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

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

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

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

視窗用 python.exe 運行 .py ,用 pythonw.exe 運行 .pyw。因為安裝視窗版 Python 時,擴展名 .py 自動被登記為用 python.exe 運行, 而 .pyw 則被登記為用 pythonw.exe 運行。

.py 文件

以 .py 作擴展名的文件是 Python 源代碼文件,由 python.exe 解釋,可在控制臺下運行。當(dāng)然,也可用文本編輯器進行修改。

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

.pyw 文件

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

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

.pyo 文件

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

.pyd 文件

.pyd 文件并不是用 python 編寫成的,.pyd 文件一般是其他語言編寫的 python 擴展模塊。.pyd 文件是用 D 語言按照一定格式編寫,并處理成二進制的文件。

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

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

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

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

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

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产手机在线αⅴ片无码观看 | 黄色1级片 | 免费一看一级毛片 | a级毛片毛片免费观看久潮喷 | 国产va精品网站精品网站精品 | 91porn国产在线观看 | 国产私拍写真福利视频 | 国产麻豆剧传媒精品网站 | 欧美精品午夜毛片免费看 | 亚洲一区二区三区福利在线 | 亚洲一区二区三区四区热压胶 | 2021国产麻豆剧传媒精品网站 | 麻豆日韩区久久综合 | www.久久爱.com狼人 | 午夜激情婷婷 | 久热久草| 日本特黄特色aaa大片免费欧 | 特黄一级片 | 亚洲一区综合在线播放 | 日本中文字幕一区 | 综合图片亚洲 | 国产日产久久 | 日韩精品专区 | 国内自拍亚洲 | 精品日韩在线 | 国产h视频在线观看 | 国产精品香蕉在线一区 | 日韩欧美一区二区三区久久 | 南京巨根无套操到你窒息 | 成人看片黄a在线看 | 成年人免费网站视频 | 中文精品久久久久国产不卡 | 一区二区视频在线观看免费的 | 中文字幕第一页在线播放 | 美女黄色免费在线观看 | 91精品国产入口 | 国产精品久久国产三级国电话系列 | 夜恋全部国产精品视频 | 国产区综合另类亚洲欧美 | 美女综合网| 日韩福利视频在线 |