2010-05-23 93 views
10

我想知道pyc文件(python字節碼)是什麼。我想知道所有的細節。 我想知道pyc文件如何與編譯器接口。它是EXE的替代品嗎? 是否需要由python運行? 它是否與.py文件一樣便攜? 我應該在哪裏使用這個?何處使用pyc文件

回答

15

爲了補充Mike Graham的回答,有一些有趣的評論here給出了pyc文件的一些信息。最有趣的是,我懷疑你是這樣一行:

從'.pyc'或'.pyo'文件中讀取的程序運行速度比從'.py '文件;關於'.pyc'或'.pyo'文件的唯一更快的速度是它們被加載的速度。

哪一個打在頭上w.r.t. pyc文件的癥結所在。 A pyc是預解釋的py文件。 python字節碼仍然與從py文件生成的相同 - 不同之處在於,當使用pyc文件時,您不必經歷創建pyc輸出的過程(在運行py文件時)。請閱讀,因爲您不必將python腳本轉換爲python字節碼。

如果您遇到過java中的.class文件,這是一個類似的概念 - 不同之處在於java必須在java解釋器執行應用程序之前使用javac編譯。不同的做事方式(內部會因爲不同的語言而非常不同),但同樣的廣泛思想。

9

Python字節碼需要Python才能運行,不能在沒有Python的情況下獨立運行,並且特定於Python的特定版本x.y。它應該可以跨平臺移植到同一版本。你沒有一個共同的理由來使用它; Python使用它來優化解析重複導入時的.py文件。你的生活會很好,忽略pyc文件的存在。

6

docs

由於對於使用了大量的標準模塊,如果在目錄中的垃圾郵件中還有一個叫spam.pyc的文件,短節目的啓動時間的重要加速.py被發現,這被假定爲包含模塊垃圾郵件的已經「字節編譯」版本。用於創建spam.pyc的spam.py版本的修改時間記錄在spam.pyc中,如果它們不匹配,則.pyc文件將被忽略。

請參閱參考資料以瞭解更多信息。但一些具體答案:

spam.pyc文件的內容與平臺無關,因此Python模塊目錄可以由不同體系結構的計算機共享。

這是不是可執行文件;它被編譯器內部用作中間步驟。

通常,您不需要手工製作.pyc文件:解釋器會自動生成.pyc文件。