溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python編譯代碼的方法

發(fā)布時(shí)間:2020-08-07 10:15:27 來源:億速云 閱讀:233 作者:小新 欄目:編程語言

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è)資訊頻道。

向AI問一下細(xì)節(jié)

免責(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)容。

AI