Кто-нибудь знает что-то вроде pylint или pychecker для блокнота ++? Или, возможно, как использовать pylint в блокноте ++.
Правильность Python (т.е. Lint), анализирующая для Notepad ++
Ответ 1
Если вы устанавливаете плагин Python Script, вы можете добавить новый Script со следующими строками, чтобы получить неплохие результаты:
console.show()
console.clear()
console.run('cmd.exe /c '
+ 'C:\\Python26\\Scripts\\pylint.bat --reports=n -f parseable '
+ '"%s"' % notepad.getCurrentFilename())
Вывод будет содержать гиперссылки на строки с ошибками/предупреждениями (если имена файлов в них не имеют пробелов...)
Ответ 2
Параметр "- 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="..."
важны
Ответ 3
Ни один из других ответов не работал у меня, но это делает:
-
Установите PyLint с помощью
C:\Python34\Scripts\pip.exe install pylint
-
Установите NppExec через Диспетчер подключений, нажмите F6 и сохраните этот script как "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 Console Output Filters. Нажмите Shift + F6 и включите этот фильтр с красным значением FF
:
%FILE%:%LINE%:*
Затем двойной щелчок по красной строке фокусирует указанное место в редакторе.
Ответ 4
Вы можете установить PyLint с помощью C:\Python34\Scripts>pip install pylint
и использовать его с помощью команды Notepad ++ Run...
(F5):
C:\Python34\Scripts\pylint.bat "$(FULL_CURRENT_PATH)"
Ответ 5
Вы должны использовать исполняемый файл вместо пакета, если вы хотите использовать Pylint в NotePad ++.
Перейдите в конфигурацию из Python Script и создайте новый .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()))
- Путь к pylint.exe(я использовал Shortname вместо Doublequotes)
- Файл, который вы хотите проверить с помощью Pylint (актуально возвращает путь из активной вкладки)
(Вы должны изменить пути, чтобы они соответствовали вашей установке...)
Теперь вам нужно сохранить этот npphelper.py, откройте вкладку с вашим Project файлом и запустите npphelper.py, созданный для pylint. (например, через кнопку)
Если вы не хотите использовать конфигурацию по умолчанию, тогда создайте шаблон 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" и обновил его.)
Несколько полезных ссылок: