どのようにそれが実行されているWindowsのコマンドボックスを終了pylintのでしょうか?
-
19-09-2019 - |
質問
Pylintは、私のWindowsマシン上で奇妙な何かをやっている - 可能にすべきではない何かを。これは、私の理解を固定としてそんなにpylintの固定についての質問ではありません。
私は、最新のpylintのバージョン、Pythonの2.6およびWindows Vistaの標準的なインストールを持っています。
それはプログラムの最後に到達したときに私はコマンドプロンプトを開き、コマンドラインからpylintを実行した場合、それが正常に実行される、その後、再度コマンドラインに単に出ていませんが、コマンド全体をクローズプロンプトウィンドウます。
私は(私が実際に実行されているコードであると仮定)コードをオンラインで簡単に見ていたし、彼らは、さまざまなエラーレベルでsys.exit()を呼び出しているが、私の読書とテストはそれはまだだけ返す必要があります示唆します適切なエラーレベルが設定されたコマンドラインに
いいえ、おそらく(Pylintも私のプロジェクトのテスト計画の一部として実行され、それはそこに動作しますが、それはむしろ、コマンドラインからPythonのメソッドとして呼び出された場合、それは同じ問題を抱えていないことを私に示唆しますこのコードパス中)(sys.exitために呼び出す。)
どのようなメカニズムでは、それを含まれている「シェル」を閉じpylintだろうか?
このPylintのバグか?私はどのように表示されません。 Pythonでのバグ? Windowsのバグ?
解決
私はXP上でこれを試してみました。
t.batます:
exit
このウィンドウを閉じて実行している!
たぶんpylintのためのコマンドラインは、出口を含むバッチファイルを使用しています!
他のヒント
これは非常に簡単に修正です。あなたの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」キーワードで終了(ERRORLEVEL)をコメントアウトした「ECHO。」プロンプトが出力でスキューされませんように。
これは http://www.logilab.org/ticket/19498 の予定されています0.20.0(現在開発中)。