Python學習筆記|Python之pycache資料夾

Tester_hope發表於2018-12-21

Python之__pycache__檔案

1.什麼是__pycache__檔案

python編寫好一個工程,在第一次執行後,總會發現工程根目錄下生成了一個__pycache__資料夾,裡面是和py檔案同名的各種 *.pyc或者*.pyo檔案。

  • 那為什麼會出現__pycache__檔案,和Python直譯器有關

Python程式執行時不需要編譯成二進位制程式碼,而直接從原始碼執行程式,簡單來說是,Python直譯器將原始碼轉換為位元組碼,然後再由直譯器來執行這些位元組碼。

  • 直譯器的具體工作:

1 完成模組的載入和連結;

2 將原始碼編譯為PyCodeObject物件(即位元組碼),寫入記憶體中,供CPU讀取;

3 從記憶體中讀取並執行,結束後將PyCodeObject寫回硬碟當中,也就是複製到.pyc或.pyo檔案中,以儲存當前目錄下所有指令碼的位元組碼檔案;

  • 之後若再次執行該指令碼,它先檢查【本地是否有上述位元組碼檔案】和【該位元組碼檔案的修改時間是否與其指令碼一致】。是就直接執行,否則重複上述步驟。

2.為什麼會出現__PYCACHE__資料夾

python直譯器會將 *.py 指令碼檔案進行編譯,並將編譯結果儲存到__pycache__目錄中。

下次再執行工程時,若直譯器發現這個 *.py 指令碼沒有修改過,就會跳過編譯這一步,直接執行以前生成的儲存在 __pycache__資料夾裡的 *.pyc 檔案。

這樣工程較大時就可以大大縮短專案執行前的準備時間;如果你只需執行一個小工程,沒關係忽略這個資料夾就行。

3.什麼時候會出現__PYCACHE__資料夾

工程目錄下有__main__.py檔案,和其他將要呼叫的模組時。如果只有當前執行的指令碼
main”,則不會生成 pycache 的檔案。

相關文章