python文件*.py運行的時候會產生對應的*.pyc文件,這個是python的解釋器把*.py文件編譯得到的二進制文件,完全可以*.py文件一樣運行,功能上沒有任何差別。
很多廠商為了防止源碼外泄,經常會采用把*.py源碼文件編譯后刪除,完全使用*.pyc文件運行自己的產品。當然了,你打開*.pyc文件是一對讓你崩潰的東西,這樣就很好的起到了源碼保護的作用。
但是這里要說到的一個問題是:當你在別的機器上(即不是編譯py文件的機器)運行python *.pyc時可能會報錯:
RuntimeError: Bad magic number in .pyc file
magic number是類UNIX系統上文件的前幾個字節的內容,它標志着該文件的類型。Python在編譯生成pyc文件時做了一個類似的標記。當Python解釋器加載pyc文件時必須先驗證該文件的magic number是否正確。
任何magic number被損壞的pyc文件都會引發上述錯誤,包括編輯pyc文件或者使用不同版本的Python解釋器來運行pyc文件,通常錯誤的原因都是Python解釋器的版本問題引起的。
如果這些pyc文件是你自己的,在類UNIX系統上用