0

最近、次のようなエラーが発生します。

IndexError                                Traceback (most recent call last)
<ipython-input-124-59ca523b1b36> in <module>()
----> 1 first_experiment_comb(model)

  c:\python26\26664\lib\site-packages\experiments.py in first_experiment_comb(mod
 l)
     172                      "Number NZ: " + str(modelz[j].NumNZs) +"\n")
     173
 --> 174         first_experiment(modelz[j], str(j))
     175
     176

c:\python26\26664\lib\site-packages\experiments.py in first_experiment(model, e
t)
     89         plt.close()
     90
---> 91     fl.timberFlow(model)
     92     plt.savefig(dire + "\\timber_flow" +ext+".pdf", bbox_inches = 0)
     93     plt.close()

C:\Python26\26664\lib\site-packages\func_lib.py in timberFlow(model)
    304     if not unVars:
    305         unVars = varValues(model, 'PIEHTLVOL')
--> 306
    307     for i in range(19):
    308             swVarVals.append(swVars[i].X)

IndexError: list index out of range

トレースの最終行が存在しないコードを指している場所、または以前のケースではコメントアウトされている場所。最後の関数 (func_lib.py 内) を単独で実行すると、experiment.py から呼び出された場合にのみ、不思議な IndexError が発生することはありません。

これをpylab python 2.6 W64で実行しています。これに関する iPython または Pylab ドキュメントで既知のバグを見つけることができませんでした。

306 行目がエラーの原因である可能性はありますか?

4

1 に答える 1

3

あなたのコードはバイトコードと同期していません。コードを適切にリロードします。

例外が発生すると、バイトコードのファイル名と行番号が検査され、ソースファイルが読み込まれてその行の元のソースが表示されます。

ただし、ソースを変更したが、まだ Python プロセスを再起動していない (または ipython でコードをリロードしていない) 場合、例外が発生したときに間違った行が表示されます。

于 2013-03-14T21:44:39.567 に答える