Python - 程序的虛擬機
時間:2023-07-01 04:00:02 | 來源:網(wǎng)站運營
時間:2023-07-01 04:00:02 來源:網(wǎng)站運營
Python - 程序的虛擬機:在 Python 安裝完成的時候,會產(chǎn)生一個 Python 虛擬機(PVM)和支持的基礎(chǔ)庫?;A(chǔ)庫很好理解就是 Python 內(nèi)置的基本模塊。而 Python 虛擬機和系統(tǒng)虛擬機不同,它是一種稱為程序的虛擬機,類似 Java 的虛擬機(JVM)。
當執(zhí)行 Python 程序時,虛擬機啟動,將 Python 源碼(.py)翻譯成字節(jié)碼(.pyc)的形式,虛擬機在當前的上下文環(huán)境中一條一條的執(zhí)行字節(jié)碼,輸出結(jié)果,并結(jié)束 Python 程序,銷毀虛擬機。使用虛擬機的目的就是提供一個和平臺無關(guān)的編程環(huán)境。
源碼翻譯成字節(jié)碼的過程是通過在源碼同目錄下創(chuàng)建一個同名的 .pyc 文件。下一次運行程序時,如果源碼沒有改變,虛擬機將會跳過字節(jié)碼文件的生成,否則重新翻譯字節(jié)碼文件。這個判斷依據(jù)是通過對比源碼文件和字節(jié)碼文件的時間戳。還有另外一種情況,用戶在源碼目錄下沒有寫入的權(quán)限,那么字節(jié)碼將會在內(nèi)存中生成,并在程序結(jié)束時丟棄。比起源碼程序,字節(jié)碼的運行速度要快的多。
另外需要注意的是:源碼文件被被翻譯成字節(jié)碼文件需要一個條件,源碼作為模塊通過 import 關(guān)鍵字引用到程序當中。
也就是說你通過
python xxx.py
執(zhí)行程序,當前路徑下不會生成 xxx.pyc 字節(jié)碼文件,可以通過
python -m xxx.py
命令把 xxx.py 文件當做模塊啟動,這樣就可以生成字節(jié)碼文件。