1. 程式人生 > >Python如何運行

Python如何運行

並且 兩種 display alt src 如果 存儲位置 程序 解釋型

Python是一種解釋型語言,在執行Python的時,解釋器將源代碼source code翻譯成字節碼byte code,然後byte code交給Python虛擬機PVM去執行,整個流程如下圖所示:

技術分享圖片

byte code

1 字節碼翻譯

Python解釋器並不是每次都會將源代碼source code翻譯成字節碼byte code。比如,如果你沒有對源代碼做任何修改,那麽,當你執行python程序時,Python解釋器直接將字節碼交給Python虛擬機執行,而跳過了源代碼翻譯成字節碼的步驟。在下面兩種情形下,Python解釋器會重新翻譯源代碼為字節碼:

1 源代碼被改變。Python解釋器會檢查源代碼與字節碼的時戳,如果發現源代碼被修改,那麽就會重新翻譯。

2 Python版本改變。如果Python解釋器發現包含在字節碼裏的版本信息與當前Python版本不匹配,也會重新翻譯。對於<Python3.2之前的Python實現,版本信息包含在字節碼文件中的一個"magic‘’版本號裏面,對於>=Python3.2的Python實現,字節碼文件名就包含了版本信息

2 字節碼的存儲位置

Python字節碼後綴"pyc"表示complied.py文件。對於<Python3.2的實現,字節碼文件與源文件放在同一個目錄,對於>=Python3.2的實現,字節碼文件單獨放在一個__pycache__文件夾下,而__pycache__文件夾與源文件在同一個目錄,並且存放在__pycache__下的字節碼文件都包含Python的版本信息,比如script-33.pyc,表示當前字節碼是由Python3.3的實現翻譯而來。

PVM

Python虛擬機不需要單獨安裝,它是Python實現的一部分,本質上就是一個大的循環,一句一句執行著字節碼裏面的代碼

Python如何運行