2011-05-14 133 views
0

在我的节目,我有不确定变量的地方:Python中,跟踪未定义的变量

global name 'cmd' is not defined 

我怎么能拉出来,其中正在使用的变量的行号?

我知道错误在哪里(cmd与self.cmd)。问题是如何获取行号(或为什么没有显示)。

自从我追赶的错误,我不得不traceback.print_exc()得到行号

+1

你可以简单地在你的编辑器中通过ctrl + f或者你正在使用的编辑器的等价物来搜索它吗?如果它告诉你它是未定义的,那么你的代码中可能没有太多事件吗? – wilbbe01 2011-05-14 22:42:46

回答

4

你在哪里运行你的程序? Python堆栈跟踪通常如下所示:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'cmd' is not defined 

正如您所看到的,它表示发生错误的行。

+0

嗯,好吧,我有'除了例外,e:打印e'。为什么不打印完整的堆栈跟踪? – Anycorn 2011-05-14 22:48:26

0

,从这个NameError升起结果包含了尝试使用名称行号的回溯。在这种特殊情况下,您可能忘记导入'cmd'模块,但也有可能您有一个巧妙命名为标准库模块的变量。

+0

我有cmd变量。 – Anycorn 2011-05-14 22:45:46