0
我寫了一個簡單的腳本test.py
,包含:python3 -O file.py沒有創造file.pyo
print('hello')
,然後用python -O test.py
運行它。我預計這會創建一個test.pyo
文件,但它沒有。
我的版本是3.5.2的Python。爲什麼沒有創建緩存文件?
我寫了一個簡單的腳本test.py
,包含:python3 -O file.py沒有創造file.pyo
print('hello')
,然後用python -O test.py
運行它。我預計這會創建一個test.pyo
文件,但它沒有。
我的版本是3.5.2的Python。爲什麼沒有創建緩存文件?
的Python只爲導入模塊創建字節碼緩存文件。主腳本(此處爲test.py
)未被緩存。無論應用哪種優化級別都無關緊要。
進口test
:
$ python -O -c 'import test'
hello
$ ls __pycache__
test.cpython-35.opt-1.pyc
注意緩存文件是在一個單獨的目錄創建,命名__pycache__
,並且該文件名不僅基於模塊的名稱,而且還對Python版本和優化級別;使用-OO
獲得.opt-2
。對於Python 3.5,則.pyo
文件擴展名不再使用,見PEP 488 -- Elimination of PYO files,看PEP 3147 -- PYC Repository Directories,爲什麼一個單獨的目錄中。
如果你想預編譯的模塊,使用python3 -m compileall
tool。