1. 程式人生 > 實用技巧 >runtimeerror bad magic number in .pyc file錯誤

runtimeerror bad magic number in .pyc file錯誤

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系統上用