Анализ правильности Python (т.е. lint) для Notepad ++ - PullRequest
11 голосов
/ 14 февраля 2011

Кто-нибудь знает что-нибудь вроде pylint или pychecker для блокнота ++?Или, возможно, как использовать Pylint в блокноте ++.

Ответы [ 5 ]

13 голосов
/ 08 июня 2011

Если вы установите плагин Python Script , вы можете добавить новый скрипт со следующими строками, чтобы получить довольно хорошие результаты:

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

Вывод будет включать гиперссылки настроки с ошибками / предупреждениями (если в именах файлов нет пробелов ...)

3 голосов
/ 18 июня 2014

Параметр "- f parseable" устарел в текущей версии Pylint.

Текущая эквивалентная альтернатива:

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 голос
/ 25 апреля 2016

Ни один из других ответов не работал для меня, но это делает:

  1. Установите PyLint, используя C:\Python34\Scripts\pip.exe install pylint

  2. Установите NppExec через Менеджер плагинов , нажмите F6 и сохраните этот скрипт как «PyLint 3.4»:

    NPP_SAVE
    cd "$(FULL_CURRENT_PATH)"
    //env_set PYTHONIOENCODING=utf-16-le
    env_set PYTHONIOENCODING=utf-8
    C:\Python34\Scripts\pylint.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%:*

Затем двойной щелчок по красной линии фокусирует указанное место в редакторе.

0 голосов
/ 22 мая 2016

Вы должны использовать Исполняемый файл вместо Пакета, если вы хотите использовать Pylint в NotePad ++.

Перейдите в конфигурацию из скрипта Python и создайте новый файл .py, чтобы запустить из него Pylint.( я назвал свой файл npphelper.py )
( Добавьте этот файл npphelper.py к пунктам меню и значкам панели инструментов, затем вы можете выполнить его, нажав кнопку. )

Это запустит Pylint в Notepad ++, я разделил Команду на 2 части:

pyLint = 'C:\\PROGRA~1\\Python35\\Scripts\\pylint.exe --reports=n'
console.show()
console.clear()
console.run('%s "%s"' % (pyLint, notepad.getCurrentFilename()))
  1. Путь к pylint.exe ( Я использовал Shortname вместо Doublequotes )
  2. Файл, который вы хотите проверить с помощью Pylint ( фактически возвращает путь из активной вкладки )

( Вы должны изменитьПути, чтобы он соответствовал вашей Установке ... )

Все, что вам нужно сделать сейчас, это сохранить этот npphelper.py, открыть вкладку с вашим Project-файлом и запустить созданный вами файл 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()))

Я установилPython Script 1.0.8.0 со всеми дополнениями, использующими MSI-файл здесь .
( Использование PluginManager в Notepad ++ дает вам версию 1.0.6.0 вместо 1.0.8.0 )

Я использую Windows 7 с Notepad ++ 6.9.1, Python 3.5.1 и Pylint 1.5.5.
( я установил pylint через CMD -> " pip install pylint "и обновил его. )


Еще несколько полезных ссылок:

0 голосов
/ 18 марта 2011

Вы можете установить PyLint с помощью C:\Python34\Scripts>pip install pylint и использовать его с помощью команды Notepad ++ Run... ( F5 ):

C:\Python34\Scripts\pylint.bat "$(FULL_CURRENT_PATH)"
...