python要編譯嗎 既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?
既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?C語(yǔ)言實(shí)際上是一種“舊”和“底層”語(yǔ)言。其執(zhí)行效率僅次于匯編語(yǔ)言。它之所以古老是因?yàn)镃語(yǔ)言出現(xiàn)得很早。盡管FORTRAN和COB
既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?
C語(yǔ)言實(shí)際上是一種“舊”和“底層”語(yǔ)言。其執(zhí)行效率僅次于匯編語(yǔ)言。
它之所以古老是因?yàn)镃語(yǔ)言出現(xiàn)得很早。
盡管FORTRAN和COBOL比C語(yǔ)言出現(xiàn)得早,但現(xiàn)代主流操作系統(tǒng)(windows、Mac OS、Linux、IOS、Android、Unix)都是從C語(yǔ)言中誕生的。
最根本的原因是C語(yǔ)言被設(shè)計(jì)用來(lái)同時(shí)編寫(xiě)匯編語(yǔ)言。從理論上講,它可以用外匯來(lái)表示。匯編語(yǔ)言是最有效的語(yǔ)言。
所以Python是用C語(yǔ)言編寫(xiě)的也就不足為奇了。它與能否生成exe無(wú)關(guān)。
Exe文件是Windows平臺(tái)的專用格式。最簡(jiǎn)單的exe是com可執(zhí)行文件。EXE文件實(shí)際上由引導(dǎo)加載程序和解釋器組成。
由Python語(yǔ)言生成的代碼只能通過(guò)引導(dǎo)加載程序和解釋器作為EXE文件執(zhí)行。
因此Python生成EXE文件并不困難。只是它是否愿意提供的問(wèn)題。
python寫(xiě)的程序,轉(zhuǎn)成了exe文件,怎么進(jìn)行反編譯為python源碼?
您可以解開(kāi)執(zhí)行文件。
如果是單個(gè)文件,則執(zhí)行時(shí)可以在臨時(shí)目錄中找到解包的包。在Untied目錄中找到PyC文件,然后使用反編譯工具將PyC反編譯成py文件。但有些程序是加密的。他們的PyC是在重寫(xiě)python編譯器之后的自定義加密格式,這不能用通常的方式解決。你需要在內(nèi)存中反編譯。內(nèi)存中的反編譯技術(shù)還沒(méi)有被公開(kāi),但它應(yīng)該并不困難。如果您感興趣,可以嘗試根據(jù)Python規(guī)范編寫(xiě)一個(gè)。
python如何調(diào)用編譯后的可執(zhí)行文件?
我用Python調(diào)用shell腳本來(lái)運(yùn)行可執(zhí)行文件接口,實(shí)現(xiàn)對(duì)方給出的功能。
簡(jiǎn)而言之,編寫(xiě)一個(gè)shell腳本,運(yùn)行可執(zhí)行文件,并傳入?yún)?shù)來(lái)實(shí)現(xiàn)該功能。之后,我們通過(guò)Python調(diào)用腳本來(lái)實(shí)現(xiàn)這個(gè)功能。
為什么在python中可編譯的程序,在pycharm中就是語(yǔ)法出錯(cuò)了?該怎么辦?
檢查pychar運(yùn)行時(shí)的python解析器與編譯器的python解析器是否一致