0

Pylint が私の Windows ボックスで奇妙なことをしています。これはあり得ないことです。これは、私の理解を修正するほど、pylint の修正に関する質問ではありません。

pylint の最新バージョン、Python 2.6、および Windows Vista の標準的なインストールがあります。

コマンド プロンプトを開いてコマンド ラインから pylint を実行すると、正常に実行され、プログラムの最後に到達すると、コマンド ラインに戻るだけでなく、コマンド プロンプト ウィンドウ全体が閉じます。

私はオンラインでコードを簡単に見て(実際に実行されているコードだと思います)、さまざまなエラーレベルで sys.exit() を呼び出していますが、私の読書とテストでは、コマンドに戻るだけでよいことが示唆されています適切なエラーレベルが設定された行。

Pylint も私のプロジェクトのテスト体制の一部として実行され、そこで動作し、コマンドラインからではなく Python メソッドとして呼び出された場合、同じ問題は発生しないことを示唆しています (おそらく sys への呼び出しはありません)。このコード パスの .exit()。)

pylintがそれを含む「シェル」を閉じるメカニズムは何ですか?

これがPylintのバグなら?方法がわかりません。Python のバグ?Windows のバグ?

4

3 に答える 3

2

XPでこれを試しました:

t.bat:

exit

これを実行すると、ウィンドウが閉じます!

pylint のコマンド ラインで、出口を含むバッチ ファイルが使用されている可能性があります。

于 2009-11-12T05:04:16.643 に答える
1

これは、0.20.0(現在開発中)に予定されているhttp://www.logilab.org/ticket/19498です。

于 2010-02-25T18:15:09.573 に答える
1

これは非常に簡単な修正です。Python スクリプト フォルダーに移動し、pylint.bat を見つけてメモ帳で開きます。

それは次のように読みます

@echo off
rem = """-*-Python-*- script
rem -------------------- DOS section --------------------
rem You could set PYTHONPATH or TK environment variables here
python -x "%~f0" %*
goto exit

"""
# -------------------- Python section --------------------
import sys
from pylint import lint
lint.Run(sys.argv[1:])


DosExitLabel = """
:exit
exit(ERRORLEVEL)
rem """

プロンプトを閉じる際の問題を修正するには、次のように変更します

@echo off
rem = """-*-Python-*- script
rem -------------------- DOS section --------------------
rem You could set PYTHONPATH or TK environment variables here
python -x "%~f0" %*
goto exit

"""
# -------------------- Python section --------------------
import sys
from pylint import lint
lint.Run(sys.argv[1:])


DosExitLabel = """
:exit
ECHO.
rem exit(ERRORLEVEL)
rem """

基本的に、「rem」キーワードで exit(ERRORLEVEL) をコメントアウトしてから、「ECHO」で空白行に追加したプロンプトに戻る前に、私がしたことはすべてです。プロンプトが出力に偏らないようにします。

于 2009-11-22T00:35:59.313 に答える