Python脚本报错AttributeError: ‘module’ object has no attribute’xxx’解决方法
2016-05-19 16:06
756 查看
最近在编写Python脚本过程中遇到一个问题比较奇怪:Python脚本完全正常没问题,但执行总报错"AttributeError:
'module'
object has no attribute 'xxx'"。这其实是.pyc文件存在问题。
问题定位:
查看import库的源文件,发现源文件存在且没有错误,同时存在源文件的.pyc文件
问题解决方法:
1. 命名py脚本时,不要与python预留字,模块名等相同
2. 删除该库的.pyc文件(因为py脚本每次运行时均会生成.pyc文件;在已经生成.pyc文件的情况下,若代码不更新,运行时依旧会走pyc,所以要删除.pyc文件),重新运行代码;或者找一个可以运行代码的环境,拷贝替换当前机器的.pyc文件即可
示例:
如下Python代码,执行时报错"AttributeError:
'module'
object has no attribute 'urlopen'",更新Python27\Lib\urllib2.pyc文件后,即可正常运行。
查看源代码
打印帮助
附录:
pyc文件介绍
pyc文件,是python编译后的字节码(bytecode)文件。只要你运行了py文件,python编译器就会自动生成一个对应的pyc字节码文件。这个pyc字节码文件,经过python解释器,会生成机器码运行(这也是为什么pyc文件可以跨平台部署,类似于java的跨平台,java中JVM运行的字节码文件)。下次调用直接调用pyc,而不调用py文件。直到你这个py文件有改变。python解释器会检查pyc文件中的生成时间,对比py文件的修改时间,如果py更新,那么就生成新的pyc。
'module'
object has no attribute 'xxx'"。这其实是.pyc文件存在问题。
问题定位:
查看import库的源文件,发现源文件存在且没有错误,同时存在源文件的.pyc文件
问题解决方法:
1. 命名py脚本时,不要与python预留字,模块名等相同
2. 删除该库的.pyc文件(因为py脚本每次运行时均会生成.pyc文件;在已经生成.pyc文件的情况下,若代码不更新,运行时依旧会走pyc,所以要删除.pyc文件),重新运行代码;或者找一个可以运行代码的环境,拷贝替换当前机器的.pyc文件即可
示例:
如下Python代码,执行时报错"AttributeError:
'module'
object has no attribute 'urlopen'",更新Python27\Lib\urllib2.pyc文件后,即可正常运行。
查看源代码
打印帮助
1 | import urllib2 |
2 | url = "http://www.baidu.com" |
3 | f = urllib2.urlopen(url, timeout=5).read() |
4 | print len(f) |
pyc文件介绍
pyc文件,是python编译后的字节码(bytecode)文件。只要你运行了py文件,python编译器就会自动生成一个对应的pyc字节码文件。这个pyc字节码文件,经过python解释器,会生成机器码运行(这也是为什么pyc文件可以跨平台部署,类似于java的跨平台,java中JVM运行的字节码文件)。下次调用直接调用pyc,而不调用py文件。直到你这个py文件有改变。python解释器会检查pyc文件中的生成时间,对比py文件的修改时间,如果py更新,那么就生成新的pyc。
相关文章推荐
- Objective-C实现无限循环轮播器
- oc----巧用storyboard/xib的小技巧,Preview~预览,提高效率
- ECMAScript5 Object对象和属性
- Yii2中Component和Object的使用方法
- Objective-C实时响应UITextField变化事件
- Objective-C UITextField 禁止粘贴
- Class and object initializationpart-3
- object - c 语言基础 进阶笔记 随笔笔记
- Class and object initialization-part2
- Class and object initialization-part1
- 使用Object-C实现23种设计模式之工厂方法模式
- android activity之间传递ArrayList<HashMap<String,Object>>
- csharp: .NET Object Relationional Mapper (ORM)- SubSonic
- 论文阅读:Volumetric and Multi-View CNNs for Object Classification on 3D Data
- 设计模式之对象池模式(Object Pool)
- SAP Business One 对象类型大全 (Object Type)
- Jquery中(function($){...})(jQuery),$(function(){}),$.extend(object)和$.fn.extend(object)
- iOS中Objective-C与JavaScript之间相互调用的实现(实现了与Android相同的机制)
- ObjectAnimator实现机制_源码分析
- Objective-C语法汇总