是否可以显示行号和警告?我收到了一些警告,可能来自numpy,但我不知道它们来自哪里。我不希望我的代码上船或提出异常,但我想从警告的起源获得更多信息。有可能吗?
答案 0 :(得分:1)
像这样写一个单独的模块。
import warnings
# capture all warnings
with warnings.catch_warnings(record=True) as warns:
warnings.simplefilter("always")
# do the stuff that triggers warnings. i.e. import your main module
# and call whatever is necessary to get it going. This must all be
# indented under the with statement!
# afterward, print captured warnings
for w in warns:
print w.category.__name__, "(%s)" % w.message,
print "in", w.filename, "at line", w.lineno
答案 1 :(得分:1)
默认打印通过warnings
模块发出的警告,包括文件名和行号,输出可以由warnings
模块中的函数以及{{{ 1}} Python解释器的参数。由于您的警告显然不包含文件名和行号,-W
模块可能无法帮助您。由于您怀疑warnings
可能是罪魁祸首,我建议您查看numpy.seterr()
函数。将警告变成错误可能会有所帮助。
答案 2 :(得分:0)
编辑:
精氨酸!我莫名其妙地错了名字。
使用pychecker模块。如果安装了distutils,则只需在命令行上键入:easy_install pychecker
即可获得最新版本。默认情况下会生成警告,并列出它们的行号。