py 與 pyc 文件
阿新 • • 發佈:2018-02-06
匹配 touch mark 時間不一致 date body mar 新的 pyc
本文要說明的問題
- pyc 文件是什麽
- pyc 文件的作用
- py 與 pyc 文件沖突
pyc 文件是什麽
當 py 文件加載後,py 文件被二進制編碼成 pyc 文件。py 文件的修改時間被記錄到 pyc 文件中。
這裏的加載
意味著要被其他模塊導入,如果你只是運行 python filename.py
,那麽不會生成 pyc 文件。
pyc 文件的作用
pyc 文件是為了讓加載 Python 模塊更快,因為 pyc 相比 py 文件編譯過程可以被跳過。
pyc 文件不能令執行更快。
py 與 pyc 文件沖突
py 文件的修改時間被記錄到了 pyc 文件中,如果兩者不匹配,Python 會忽略 pyc 文件,加載 py 文件然後編譯出新的 pyc 文件。
這裏的不匹配指的是 py 與 pyc 文件的修改時間不一致。
即使 pyc 文件記錄的修改時間晚於 py 文件(pyc 文件更加新鮮),還是會進行上述流程。
以下是一個驗證示例
$ date Tue Feb 6 10:31:28 CST 2018 echo "print('Hello')" > hello.py $ python >>> import hello Hello >>> quit() $ ls -l | grep hello -rw-r--r-- 1 jsm staff 15 Feb 6 10:31 hello.py -rw-r--r--
1 jsm staff 110 Feb 6 10:32 hello.pyc # 修改 hello.py 的修改時間 $ touch -mt 200801120000 hello.py $ python >>> import hello Hello >>> quit() $ ls -l | grep hello -rw-r--r-- 1 jsm staff 15 Jan 12 2008 hello.py # 可以看出 hello.pyc 相比上面更新了 -rw-r--r-- 1 jsm staff 110 Feb 6 10:35 hello.pyc
py 與 pyc 文件