我正在尝试在Ubuntu 16.04
上运行python脚本;该脚本可以在Ubuntu 14.04
上正常运行,但我总是得到一种模糊的object has no attribute
错误。
似乎这个异常类是still active,所以不确定是什么问题。我已经安装了python-urllib3
和python3-urllib3
(即使16.04系统上的python是到python-2.7的符号链接)也没有运气。
这是我的错误,来自代码的507行。有什么方法可以获取有关该错误的更多信息?
Traceback (most recent call last):
File "./jsontest.py", line 507, in <module>
except urllib.error.URLError as e:
AttributeError: 'module' object has no attribute 'error'
#!/usr/bin/python
import urllib
import re
import json
import sys
import getopt
...
# line 507
except urllib.error.URLError as e:
print "fail: ", e.reason
...
更新:如@a_guest所述。不得不做出改变。我不知道为什么它在14.04上能正常运行。也许这是2.7.6和2.7.12之间的区别:
except urllib2.error.URLError as e:
答案 0 :(得分:2)
您链接了Python 3的文档,但是您似乎正在使用Python 2。urllib
on Python 2没有该error
模块,就像错误状态一样。
urllib2
具有此类,因此您可以改用urllib2.URLError
。
答案 1 :(得分:0)
该错误意味着urllib模块不包含称为error
的任何内容。
我的urllib没有error
子模块。
答案 2 :(得分:0)
请注意,Ubuntu 16.04 /usr/bin/python
是指向python2
的符号链接。如果要使用python 3.x,则应从
#!/usr/bin/python
到
#!/usr/bin/python3
(注意:此行开头的“#!”称为“ shebang”。)
或者,您可以创建一个虚拟环境,以便在激活它时将运行python 3。