2011-05-14 4 views
0

をトレースし、私はどこかの変数を未定義いますPythonは、私のプログラムでは、未定義の変数

global name 'cmd' is not defined 

は、どのように私は、変数が使用されている行番号を引き出すことができますか?

私はどこにエラーがあるか知っています(cmdとself.cmd)。問題は、行番号を取得する方法(または表示されない理由)です。

私は、エラーをキャッチしたので

、私は行番号

+1

ctrl + fまたは使用しているエディターに相当するエディターで簡単に検索できますか?あなたにそれが定義されていないと言っているのであれば、おそらくあなたのコードの中にあまり多くの出現がないでしょう? – wilbbe01

答えて

4

あなたはどこでプログラムを実行していますか? Pythonのスタックトレースは、通常次のようになります。

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

これはエラーが発生している行を示しています。

+0

hmm、大丈夫、例外を除いて、e:print e'があります。なぜ完全なスタックトレースを印刷しないのですか? – Anycorn

0

名を使用しようとした行番号が含まれて提起されているこのNameErrorから得られるトレースバックを得るためにtraceback.print_exc()しなければなりませんでした。この特定のケースでは、 'cmd'モジュールをインポートするのを忘れている可能性が高いですが、標準ライブラリモジュールの後に偶然に名前が付けられた変数を持つ可能性もあります。

+0

私はcmd変数を持っています。 – Anycorn