python pip 安装包一直出现错误AttributeError: 'NoneType' object has no attribute 'startswith'

不管卸载重新安装python都会出现,想安装包必须下好,在线下就不行,扩展库必须是装好的,这样太麻烦了,请好心人大牛来帮帮。谢谢... 不管卸载重新安装python都会出现,想安装包必须下好,在线下就不行,扩展库必须是装好的,这样太麻烦了,请好心人大牛来帮帮。谢谢 展开
 我来答
从空去听8
2017-11-14 · TA获得超过7439个赞
知道大有可为答主
回答量:6907
采纳率:93%
帮助的人:5565万
展开全部
最近在编写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文件后,即可正常运行。

1234

import urllib2url = ""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。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式