【Python】對付__pycache__的幾種方法


python在執行包含其他模組import module的過程中,會出現__pycache__的資料夾,
這顧名思義是python cache的檔案。



裡面是一些 .pyc檔案。


註:
.py:編寫好的程式碼、Script。
.pyc:Python經過編譯(Compile)後產出的位元組碼(Bytecode)。以便未來在 import module時,程式能夠更快載入。
$ python -m compileall main.py
.pyo:優化(Optimizations)過後的.pyc。
.pyd:可視為.dll檔案。
.pyw:以視窗模式執行的檔案(以pythonw.exe開啟)。





防止__pycache__產生的方法:

在下指令的時候,可單次防止__pycache__資料夾產生
$ python -B main.py


或者另一個方法是,

添加系統環境變數 PYTHONDONTWRITEBYTECODE=1 (或是其他非空數字)

可防止之後在命令列模式下產生__pycache__資料夾。








至於若直接對.py檔右鍵 點擊 Edit with Idle,按F5執行仍會跑出__pycache__資料夾來,對此還不知道如何解決。

Idle 的 Command在註冊表中的這個路徑
電腦\HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle\shell\edit36\command

其預設值為
"C:\Users\GJLMoTea\AppData\Local\Programs\Python\Python36\pythonw.exe" -m idlelib "%L" %*




防止__pycache__上傳到Github的方法:

今天若僅是不將__pycache__上傳同步到github上,
新增一個 .gitignore 檔案到專案裡也是一個辦法,
並輸入進以下內容
__pycache__/
*.py[cod]
這樣一來便防止所有的 __pycache__ 資料夾、防止所有的 .pyc、.pyo、.pyd 檔案上傳。