主頁 > 知識庫 > python 中 .py文件 轉(zhuǎn) .pyd文件的操作

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

熱門標(biāo)簽:螳螂科技外呼系統(tǒng)怎么用 地圖地圖標(biāo)注有嘆號 舉辦過冬奧會的城市地圖標(biāo)注 qt百度地圖標(biāo)注 阿里電話機(jī)器人對話 400電話申請資格 遼寧智能外呼系統(tǒng)需要多少錢 電銷機(jī)器人系統(tǒng)廠家鄭州 正安縣地圖標(biāo)注app

pyd文件生成

安裝easycython庫

pip install easycython

test.py

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

main.py

import test
test.test()

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

終端運(yùn)行命令

easycython *.pyx

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

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

python main.py

代碼實現(xiàn)

import glob
import os
def get_file_path(path, file_type):
  """
  取文件夾下相同后綴文件路徑列表
  :param path: 文件夾路徑
  :param file_type: 后綴名
  :return:文件路徑列表
  """
  paths = glob.glob(os.path.join(path,
                  file_type
                  ))
  return paths
def 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_str
def 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:\Users\xiahuadong\Desktop\number_humen - 副本"
  middle_name_pyd = '.cp36-win_amd64'
  py_to_pyd(path_dir, middle_name_pyd)

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

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

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)用的擴(kuò)展類庫。需要注意的是,在您使用擴(kuò)展類庫時可能需要考慮平臺問題,某些擴(kuò)展類庫可能不提供跨平臺實現(xiàn)。

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

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

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

在 Python 運(yùn)行過程中如碰到 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 文件進(jìn)行一個 import 動作,實際上也就是將 abc.pyc 文件中的 PyCodeObject 重新在內(nèi)存中復(fù)制出來,加以運(yùn)行。

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

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

.py 文件

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

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

.pyw 文件

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

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

.pyo 文件

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

.pyd 文件

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

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

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

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

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

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

您可能感興趣的文章:
  • 解決Jupyter notebook中.py與.ipynb文件的import問題
  • python把ipynb文件轉(zhuǎn)換成pdf文件過程詳解
  • 如何運(yùn)行.ipynb文件的圖文講解
  • jupyter .ipynb轉(zhuǎn).py的實現(xiàn)操作

標(biāo)簽:隨州 淘寶好評回訪 興安盟 昭通 濟(jì)源 信陽 合肥 阜新

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python 中 .py文件 轉(zhuǎn) .pyd文件的操作》,本文關(guān)鍵詞  python,中,.py,文件,轉(zhuǎn),.pyd,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python 中 .py文件 轉(zhuǎn) .pyd文件的操作》相關(guān)的同類信息!
  • 本頁收集關(guān)于python 中 .py文件 轉(zhuǎn) .pyd文件的操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章