分析Notepad ++的Python正确性(即lint)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析Notepad ++的Python正确性(即lint)相关的知识,希望对你有一定的参考价值。

有没有人知道像pylintpychecker这样的记事本++?或者也许如何在记事本++中使用pylint。

答案

如果您安装了Python Script plugin,那么您可以添加一个包含以下行的新脚本以获得相当不错的结果:

console.show()
console.clear()
console.run('cmd.exe /c '
            + 'C:\Python26\Scripts\pylint.bat --reports=n -f parseable '
            + '"%s"' % notepad.getCurrentFilename())

输出将包含带有错误/警告的行的超链接(如果文件名中没有空格......)

另一答案

在当前版本的Pylint中不推荐使用选项“-f parseable”。

目前的等效替代方案是:

console.run('cmd.exe /c '
        + 'C:\Python26\Scripts\pylint.bat --reports=n '
        + '--msg-template="%s" %s' 
        % ( '{path}:{line}: {msg_id}({symbol}), {obj} {msg}', notepad.getCurrentFilename()))

注意:python路径可以是不同的,例如C:\Python27.

注2:--msg-template="..."中的双引号很重要

另一答案

其他答案都不适用于我,但这样做:

  1. 使用C:Python34Scriptspip.exe install pylint安装PyLint
  2. 通过Plugin Manager安装NppExec,按F6,并将此脚本保存为“PyLint 3.4”: NPP_SAVE cd "$(FULL_CURRENT_PATH)" //env_set PYTHONIOENCODING=utf-16-le env_set PYTHONIOENCODING=utf-8 C:Python34Scriptspylint.exe --reports=n -f parseable "$(FULL_CURRENT_PATH)"

样本输出:

Process started >>>
************* Module pylint2
pylint2.py:3: [C0330(bad-continuation), ] Wrong continued indentation (add 4 spaces).
        + 'C:\Python26\Scripts\pylint.bat --reports=n '
        ^   |
pylint2.py:4: [C0330(bad-continuation), ] Wrong continued indentation (add 4 spaces).
        + '--msg-template="%s" %s' 
        ^   |
pylint2.py:4: [C0303(trailing-whitespace), ] Trailing whitespace
pylint2.py:5: [C0330(bad-continuation), ] Wrong continued indentation (add 4 spaces).
        % ( '{path}:{line}: {msg_id}({symbol}), {obj} {msg}', notepad.getCurrentFilename()))
        ^   |
pylint2.py:5: [C0326(bad-whitespace), ] No space allowed after bracket
        % ( '{path}:{line}: {msg_id}({symbol}), {obj} {msg}', notepad.getCurrentFilename()))
          ^
pylint2.py:6: [C0304(missing-final-newline), ] Final newline missing
pylint2.py:1: [C0111(missing-docstring), ] Missing module docstring
pylint2.py:2: [E0602(undefined-variable), ] Undefined variable 'console'
pylint2.py:5: [E0602(undefined-variable), ] Undefined variable 'notepad'
No config file found, using default configuration
<<< Process finished. (Exit code 18)

您可以使用NppExec的控制台输出过滤器链接这些路径。按Shift + F6并启用此过滤器,红色设置为FF

%FILE%:%LINE%:*

然后双击红线将指定的位置聚焦在编辑器中。

另一答案

您可以使用C:Python34Scripts>pip install pylint安装PyLint,并通过Notepad ++的Run...命令(F5)使用它:

C:Python34Scriptspylint.bat "$(FULL_CURRENT_PATH)"
另一答案

如果要在NotePad ++中使用Pylint,则应使用可执行文件而不是批处理。

从Python脚本转到配置并创建一个新的.py文件以从中运行Pylint。 (我叫我的文件npphelper.py) (将npphelper.py添加到菜单项和工具栏图标,然后按下按钮即可执行它。)

这将把Pylint运行到Notepad ++中,我将命令分成两部分:

pyLint = 'C:\PROGRA~1\Python35\Scripts\pylint.exe --reports=n'
console.show()
console.clear()
console.run('%s "%s"' % (pyLint, notepad.getCurrentFilename()))
  1. pylint.exe的路径(我使用短名称而不是双引号)
  2. 要使用Pylint检查的文件(实际返回活动标签中的路径)

(您必须更改路径以使其适合您的安装......)

您现在要做的就是保存此npphelper.py,使用Project-File打开Tab并运行您为pylint创建的npphelper.py。 (例如通过按钮)


如果您不想使用默认配置,则生成一个pylintrc模板(将它们保存在您想要的位置)。我通过CMD使用以下命令完成了它:

pylint.exe --generate-rcfile>>myfilename.pylintrc

然后你需要将一些行更改为npphelper.py:

rcfile = 'C:\PROGRA~1\Python35\Scripts\myrcfile.pylintrc'
pyLint = 'C:\PROGRA~1\Python35\Scripts\pylint.exe --reports=n --rcfile="%s"' % rcfile
console.show()
console.clear()
console.run('%s "%s"' % (pyLint, notepad.getCurrentFilename()))

我使用.msi文件here安装了所有Extras的Python Script 1.0.8.0。 (在Notepad ++中使用PluginManager为您提供版本1.0.6.0而不是1.0.8.0)

我使用Windows 7与Notepad ++ 6.9.1,Python 3.5.1和Pylint 1.5.5。 (我通过CMD安装了pylint - >“pip install pylint”并更新了它。)


一些更有用的链接:

以上是关于分析Notepad ++的Python正确性(即lint)的主要内容,如果未能解决你的问题,请参考以下文章

11python 递归

Python 开发轻量级爬虫08

灰色关联分析法详解及python实践

灰色关联分析法详解及python实践

实时即未来,大数据项目车联网之电子围栏业务逻辑分析十八

实时即未来,大数据项目车联网之电子围栏业务逻辑分析十八