如何获得有关python错误的更多信息?

时间:2018-10-15 20:02:34

标签: python

我正在尝试在Ubuntu 16.04上运行python脚本;该脚本可以在Ubuntu 14.04上正常运行,但我总是得到一种模糊的object has no attribute错误。

似乎这个异常类是still active,所以不确定是什么问题。我已经安装了python-urllib3python3-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:

3 个答案:

答案 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。