2013-12-22 118 views
0

我寫了一個腳本,比如說,samplescript.py。除了編輯它之外,我所能記得的是通過命令行python解釋器運行它。解釋器是否編譯python腳本?

後來,我找到了一個samplescript.pyc文件。是否通過解釋器運行腳本始終調用腳本的編譯?

+0

是的。它編譯它。它應該怎麼知道該怎麼做? –

+0

下次運行腳本時,您的計算機可以使用'.pyc'文件而不是重新編譯。如果'.py'文件更改,則會生成一個新的'.pyc'文件。 – ChrisP

+0

http://stackoverflow.com/questions/2998215/if-python-is-interpreted-what-are-pyc-files –

回答

3

當你執行你的代碼時,python會創建一個編譯好的pyc文件。此文件是,如果你不修改代碼

here在後執行的一個運行:

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

通常,您不需要做任何事情來創建「spam.pyc」文件。 無論何時「spam.py」編譯成功,都會嘗試 將編譯後的版本寫入「spam.pyc」。這個 嘗試失敗並不是錯誤;如果由於任何原因文件沒有完全寫入, 生成的「spam.pyc」文件將被識別爲無效,因此 稍後將被忽略。 「spam.pyc」文件的內容獨立於平臺 ,所以Python模塊目錄可以由不同體系結構的機器共享。