1. 程式人生 > >python:module 'pickle' has no attribute 'load'錯誤原因和解決方案

python:module 'pickle' has no attribute 'load'錯誤原因和解決方案

錯誤:這明顯是pickle包已經安裝好了,然而在呼叫pickle的時候發生了誤會。

原因:當前檔案目錄中有一個檔案叫做pickle.py或者此檔案的檔名為pickle.py,如果是這樣,那麼python在import的時候就會import到你自己寫的這個檔案。

以下是python模組引用的順序:

import引用時首先判斷這個module是不是built-in即內建模組,比如import sys。如果是則引入內建模組,

如果不是則在一個稱為sys.path的list中尋找(引用的時候會按照下面的順序去引用

sys.path在python指令碼執行時動態生成,包括以下3個部分: 
1.指令碼執行的位置,即執行模組的路徑 (順序第一)
2.環境變數中的PYTHONPATH, 即.bash_profile (順序第二)
3.第三方模組的位置,一般在site-package資料夾下 (順序第三)
4.通過sys.path.append(path)新增到sys.path中的路徑 (順序第四)

可以看到指令碼執行的位置是位於第一優先順序的。

解決方案:把和pickle重名的檔案重新命名。