Python脚本报错AttributeError: ‘module’ object has no attribute’xxx’解决方法

最近在编写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文件后,即可正常运行。


1

2

3

4

import urllib2

url = "http://www.baidu.com"

f = urllib2.urlopen(url, timeout=5).read()

print len(f)

附录:

pyc文件介绍

pyc文件,是python编译后的字节码(bytecode)文件。只要你运行了py文件,python编译器就会自动生成一个对应的pyc字节码文件。这个pyc字节码文件,经过python解释器,会生成机器码运行(这也是为什么pyc文件可以跨平台部署,类似于java的跨平台,java中JVM运行的字节码文件)。下次调用直接调用pyc,而不调用py文件。直到你这个py文件有改变。python解释器会检查pyc文件中的生成时间,对比py文件的修改时间,如果py更新,那么就生成新的pyc。

时间: 2024-10-12 17:14:49

Python脚本报错AttributeError: ‘module’ object has no attribute’xxx’解决方法的相关文章

python中引入包的时候报错AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法?

python中引入包的时候报错:import unittestimport smtplibimport timeimport osimport sysimp.reload(sys)sys.setdefaultencoding('utf-8') AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法: 1.python2中解决方法:reload(sys)sys.setdefaultencoding('utf-8'

python jieba 结巴分词报错 AttributeError: 'module' object has no attribute 'cut'

首先这个AttributeError: ‘module’ object has no attribute ‘cut’ 报错的原因是因为有jieba.py这个文件存在,或者jieba这样命名的文件存在,很多新人使用结巴 来分词的时候命名直接为jieba.py,但是其实官方给的教程代码里有import jieba,这样就会引用到你自己这个教程文件jieba.py,而没有引用官方的库,这样自然cut这个方法就没有,所以报错.解决方法:1.不要使用jieba.py来命名你的测试文件.2.你一开始就是用j

TRACE nova AttributeError: 'module' object has no attribute 'packs' 解决办法

I got the following errors when I was deploying OpenStack with devstack. 2013-02-28 01:08:28 DEBUG nova.utils [-] backend <module 'nova.db.sqlalchemy.migration' from '/opt/stack /nova/nova/db/sqlalchemy/migration.pyc'> from (pid=27011) __get_backend

unittest中报错:AttributeError: &#39;TestLogin&#39; object has no attribute &#39;driver&#39;解决方法

源代码如下: 更改后: 执行成功. unittest中报错:AttributeError: 'TestLogin' object has no attribute 'driver'解决方法 原文地址:https://www.cnblogs.com/Asiihu/p/10167964.html

针对AttributeError: ‘module’ object has no attribute’xxx’的错误归类

目前遇见的有三种类型: 拼写错误,模块一定要拼写错误,这个也是最容易犯的,发现找不到模块的时候,最好先检查一遍自己引入的模块拼写尤其是那些名字非常长的比如HTTPPasswordMgrWithDefaultRealm,这种里有部分字母要大写的一定要注意 就是在python3中,引入主模块不会将相应的子模块引入,比如引入urllib模块,但是使用的时候用的是urllib.request模块,那么在开头引入的时候就应该写的是import  urllib.request 定义python文件名的时候,

python 脚本运行时报错: AttributeError: &#39;module&#39; object has no attribute ***

最近在编写Python脚本过程中遇到一个问题比较奇怪:Python脚本完全正常没问题,但执行总报错"AttributeError: 'module' object has no attribute 'xxx'".这其实是.pyc文件存在问题. 问题定位: 查看import库的源文件,发现源文件存在且没有错误,同时存在源文件的.pyc文件 问题解决方法: 1. 命名py脚本时,不要与python预留字,模块名等相同 2. 删除该库的.pyc文件(因为py脚本每次运行时均会生成.pyc文件

Faq_flask : AttributeError: ‘module’ object has no attribute ‘autoescape’

原文地址: http://www.suzf.net/thread-0613-153.html 转载须注明原始出处 前些天从 "spider_net" 上找了一篇文章 , 大致就是利用 highcharts + flask + mysql 构建的一个简单的监控系统 ,经过几番挣扎终于还是给捣持出来了 , 现在总结一下 , 分享给大家 .   o_O 部分报错信息: * Detected change in 'flask_web.py', reloading* Restarting wit

AttributeError: &#39;module&#39; object has no attribute &#39;handlers&#39;--Python子模块导入问题

想使用python的logging模块记录日志,并使用RotatingFileHandler来处理日志以便于在日志文件超过指定的大小后会重新生成新的日志文件. 基本代码如下: import logging logger = logging.getLogger('mylogger') logger.setLevel(logging.INFO) fh=logging.handlers.RotatingFileHandler('/tmp/test.log', mode = 'a', maxBytes=

python 错误AttributeError: &#39;module&#39; object has no attribute &#39;AF_INET&#39;

写了一个简单的python socket的程序.运行时,报错如下 原因:文件的命名与Python的function的命名冲突 修改名称后,发现还是无法运行,检查目录下面是否有 这样子的一个文件,删除即可. 据我的理解,应该是我们自己命名重写了Python的socket函数. 附上我的小代码 import socket mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) mysock.connect(('data.pr4e.org'