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重名的文件重命名。

 

展开阅读全文

没有更多推荐了,返回首页