您好,登錄后才能下訂單哦!
python編譯代碼的方法?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
Python代碼在解釋執(zhí)行之前,是會(huì)被編譯成.pyc或者.pyo文件的,它們是中間字節(jié)碼表示的文件,之后Python虛擬機(jī)才會(huì)去解釋執(zhí)行它們。
1、pyc文件
pyc是一種二進(jìn)制文件,是由py文件經(jīng)過編譯后,生成的文件,是一種byte code,py文件變成pyc文件后,加載的速度有所提高。
而且pyc是一種跨平臺(tái)的字節(jié)碼,是由python的虛擬機(jī)來執(zhí)行的,這個(gè)是類似于JAVA或者.NET的虛擬機(jī)的概念。
pyc的內(nèi)容,是跟python的版本相關(guān)的,不同版本編譯后的pyc文件是不同的。
2、pyo文件
pyo是優(yōu)化編譯后的程序 python -O 源文件即可將源程序編譯為pyo文件。
3、把單個(gè)文件編譯成pyc
用如下代碼
import py_compile py_compile.compile(r'H:\game\test.py')
或者
python -m py_compile test.py
這樣會(huì)在test.py文件所在的目錄下,生成一個(gè)__pycache__(注意:這里目錄名前后有兩個(gè)下劃線)的目錄,并且其中存有一個(gè)test.cpython-35.pyc文件,這個(gè)pyc文件就是test.py編譯之后生成的文件。
4、把一個(gè)目錄下所有python源文件編譯pyc
一般來說,我們的工程都是在一個(gè)目錄下的,一般不會(huì)說僅僅編譯一個(gè)py文件而已,而是需要把整個(gè)文件夾下的py文件都編譯為pyc文件,python又為了我們提供了另一個(gè)模塊:compileall 。使用方法如下:
import compileall compileall.compile_dir(r'/root/src')
也可以直接用命令行編譯一個(gè)目錄下的文件
python -m compileall /root/src/
這樣就會(huì)在/root/src目錄下生成一個(gè)新的目錄__pycache__,這個(gè)目錄的下面會(huì)存放所有的和python源代碼對(duì)應(yīng)的pyc文件
比如源代碼目錄結(jié)構(gòu)如下
/root/src |---test.py |---test2.py |---test3.py
編譯后目錄結(jié)構(gòu)會(huì)變成如下:
/root/src |---test.py |---test2.py |---test3.py |---__pycache__ |----test.cpython-35.pyc |----test2.cpython-35.pyc |----test3.cpython-35.pyc
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)python編譯代碼的方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。