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 上试过这个:

蝙蝠:

exit

运行它会关闭窗口!

也许 pylint 的命令行使用包含出口的批处理文件?

于 2009-11-12T05:04:16.643 回答
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”关键字注释掉出口(ERRORLEVEL),然后在它返回到我用“ECHO”在空白行打印中添加的提示之前。以便提示不会与输出偏斜。

于 2009-11-22T00:35:59.313 回答
1

这是http://www.logilab.org/ticket/19498计划于 0.20.0(目前正在开发中)。

于 2010-02-25T18:15:09.573 回答