pyc文件反编译成py文件
前言
從git上拉下來(lái)的程序,運(yùn)行的時(shí)候發(fā)現(xiàn)import少一個(gè)py文件,相應(yīng)文件夾下只有對(duì)應(yīng)的pyc文件,且程序運(yùn)行報(bào)import不了這個(gè)文件模塊。
基礎(chǔ)知識(shí)
pyc是一種二進(jìn)制文件,是由py文件經(jīng)過(guò)編譯后,生成的文件,是一種byte code,py文件變成pyc文件后,加載的速度有所提高,而且pyc是一種跨平臺(tái)的字節(jié)碼,是由python的虛擬機(jī)來(lái)執(zhí)行的,這個(gè)是類似于JAVA或者.NET的虛擬機(jī)的概念。pyc的內(nèi)容,是跟python的版本相關(guān)的,不同版本編譯后的pyc文件是不同的,3.7編譯的pyc文件,3.6版本的 python是無(wú)法執(zhí)行的。
我自己理解的就是在我們運(yùn)行py文件時(shí),同各種編程語(yǔ)言一樣,都會(huì)進(jìn)行編譯的過(guò)程,以便更好更快的下次運(yùn)行。而Python會(huì)在執(zhí)行.py文件的時(shí)候。將.py形式的程序編譯成中間式文件(byte-compiled)的.pyc文件,所以,在我們運(yùn)行python文件的時(shí)候,就會(huì)自動(dòng)首先查看是否具有.pyc文件,如果有的話,而且.py文件的修改時(shí)間和.pyc的修改時(shí)間一樣,就會(huì)讀取.pyc文件,否則,Python就會(huì)讀原來(lái)的.py文件。其實(shí)并不是所有的.py文件在與運(yùn)行的時(shí)候都會(huì)產(chǎn)生.pyc文件,只有在import相應(yīng)的.py文件的時(shí)候,才會(huì)生成相應(yīng)的.pyc文件。
將py文件編譯成pyc文件
- 命令行:
- 代碼:
將pyc文件反編譯成py文件
-
pip install uncompyle6(python3對(duì)應(yīng)版本)
-
安裝完uncompyle之后,win需要添加%python_home%\Scripts\到環(huán)境變量:具體方法自行百度,大概就是我的電腦右鍵屬性,環(huán)境變量,選擇path然后編輯,添加即可。Linux系統(tǒng)則不需要。
-
運(yùn)行 uncompyle6 -o xx.py xx.pyc xx為你的文件名。就會(huì)在你.pyc對(duì)應(yīng)文件夾下產(chǎn)生py原文件。
- 然后就可以用你的編譯工具打開(kāi)原文件啦
總結(jié)
以上是生活随笔為你收集整理的pyc文件反编译成py文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: FCKEditor的用法与下载
- 下一篇: WareZ入门指南--TLF元老thun