2

Windowsでは、次のPythonスクリプトを実行すると、予想される2ではなく0のERRORLEVELが得られます。

import sys
import scipy.io

sys.exit(2)

import scipy.ioを削除すると、正しいERRORLEVELが2になります...

scipy.ioをインポートするとそのような問題が発生する理由はありますか?

PS:Windows 7、Python 2.72、Scipy 0.10.1

sys.exit呼び出しの直前にhelp(sys.exit)を呼び出すと、次のようになります(これは良いようです)。

Help on built-in function exit in module sys: 

exit(...) 
    exit([status]) 

    Exit the interpreter by raising SystemExit(status). 
    If the status is omitted or None, it defaults to zero (i.e., success). 
    If the status is numeric, it will be used as the system exit status. 
    If it is another kind of object, it will be printed and the system 
    exit status will be one (i.e., failure).

電話したら

sys.exit('Something wrong')

文字列は出力されますが、システムは予想される1ではなく0をERRORLEVELとして返します。

4

1 に答える 1

1

これはSciPyのバグが原因のようです。関連するチケットは次のとおりです(最初のチケットのみがまだ開いています)。

興味深い観察の1つは、

weaveをインポートするとバグはなくなります。

scipy.weaveおそらく、この回避策が役立つかどうかを確認するためにインポートしてみてください。

于 2012-05-16T10:29:45.427 に答える