it-swarm.com.ru

Как запустить Pylint с PyCharm

Я хочу настроить pylint как внешний инструмент для всего моего каталога проектов для проекта python, над которым я работаю. Я пытался использовать хранилище в качестве модуля с __init__.py и без, и он не работает в любом случае.

У меня проблемы с настройкой Pylint для запуска с PyCharm. Я знаю, что должен запускать его как внешний инструмент, однако настройки меня смущают. 

Официальный источник их документации не работает, поэтому я не могу это проверить.

39
Wasif Hyder

Вы можете настроить pylint для работы с PyCharm, выполнив следующие шаги:

  1. Установите pylint:

    $ pip install pylint
    
  2. Найдите папку установки pylint:

    $ which pylint         # MacOS/Linux
    /usr/local/bin/pylint  # this is just a possible output check yours
    

    $ where pylint         # Windows
    %LocalAppData%\Programs\Python\Python36-32\Scripts\pylint.exe  # possible location
    
  3. Откройте окно настроек PyCharm с помощью File -> Settings, затем перейдите к Tools -> External Tools на боковой панели. (Или поиск "внешние инструменты")

     PyCharm External tools

  4. Настройте внешний инструмент, нажав на знак + и заполнив соответствующие поля. В Program используйте путь, полученный при запуске which pylint, для других значений вы можете использовать то же изображение.

     PyCharm Edit Tool

  5. Запустите pylint из Tools -> External Tools -> pylint:

     PyCharm External Tools

  6. Посмотри свой вывод в терминале PyCharm

     PyCharm terminal

Для получения более подробной информации, обратитесь к Pylinting с PyCharm .

Обновление:

Если вы хотите использовать pylint для проверки всего вашего проекта или определенного файла или каталога, вы можете щелкнуть правой кнопкой мыши на корне, файле или каталоге вашего проекта, а затем External Tools -> pylint, как показано ниже.

 PyCharm check entire project

78
lmiguelvargasf

Поскольку я не нашел готовую готовую настройку, это настройки, которые я использую в PyCharm CE 2018.1 для macOS:

1 - pip install pylint в вашем проекте virtualenv или глобально

2 - Добавить новый внешний инструмент и настроить:

Program: pylint
Arguments: "--msg-template='{abspath}:{line:5d},{column:2d}: {msg} ({symbol})'" --output-format=colorized "$FilePath$"
Working directory: $ProjectFileDir$
Output filters: $FILE_PATH$:\s*$LINE$\,\s*$COLUMN$:

Обратите внимание на обязательные двойные кавычки для msg-шаблона и escape-символы для выходных фильтров. Выходной фильтр позволяет щелкнуть путь к файлу и открыть его в редакторе исходного кода IDE.

Единственной отсутствующей функцией были бы выходные фильтры, чтобы отобразить описания линтов непосредственно в исходном виде, как это делается со встроенным линтером. Пока нет такой возможности.

 pylint arguments

20
lkraider

Edit: теперь я использую и рекомендую Плагин Pycharm , которого не было, когда я впервые написал этот ответ.


Коллега указал мне на pylint-pycharm на GitHub . Это оболочка вокруг pylint с выводом, отформатированным для PyCharm . Вот как я это настроил:

git clone https://github.com/perses76/pylint-pycharm.git
cd pylint-pycharm
python setup.py build

Это создает build/scripts-2.7/pylint-pycharm

Затем в PyCharm создайте новый внешний инструмент со следующими настройками:

Program: path to your installation of pylint-pycharm  
Arguments: --virtualenv=$PyInterpreterDirectory$/.. $FileName$
Working directory: $FileDir$ 
Output filters: $FILE_PATH$\:$LINE$\:$COLUMN$\:.*

PyLint for PyCharm External Tool settings screenshot

Теперь запустите его из Tools -> External Tools -> PyLintPyCharm . Каждая строка вывода будет иметь гиперссылку на соответствующую позицию в исходном коде.

5
Aaron F

Примечание к предыдущим ответам ... Я искал метод, позволяющий PyCharm знать о синтаксисе вывода, чтобы я мог напрямую переходить к расположению файлов. Это работает без использования дополнительных инструментов.

Pylint можно настроить для вывода сообщений в определенном формате, используя параметр msg-template в файле pylintrc или параметр CLI --msg-template.

Я установил его на: msg-template='{abspath}:{line}:{column}: {msg_id} {msg}'

В настройках Внешних инструментов для Output filters: может быть установлено значение $FILE_PATH$:$LINE$:$COLUMN$: .*so. PyCharm отображает ссылки для прямого перехода к указанным местоположениям . Это можно комбинировать с output-format=colorized, поэтому я получаю следующее:  enter image description here PyCharm не распознает столбец, несмотря на его настройку. Но наличия файла и строки мне достаточно.

5
ub_marco

Вы можете попробовать это Плагин Pylint PyCharm :

 Pylint PyCharm screenshot

обеспечивает сканирование файлов Python в реальном времени и по требованию с помощью Pylint из PyCharm/IDEA.

После того, как он установлен, проверка в режиме реального времени работает автоматически . По требованию у вас есть несколько вариантов, начиная от проверки текущего открытого файла до сканирования всего проекта:  enter image description here

(Просто ради прозрачности я разработчик)

4
Roberto Leinardi

Сначала установите pylint с pip: 

pip install pylint

Вы должны открыть «Настройки> Инструменты> Внешние инструменты» и нажать кнопку «+» в PyCharm. 

Вот пример с хорошими настройками.

3
ikreb

Благодаря информации здесь и обновленной документации от PyCharm я смог заставить это работать хорошо, также используя виртуальную среду для проекта (гарантируя, что любые пакеты могут быть развернуты в виртуальной среде и не должны быть развернуты глобально). ).

Взяв то, что предоставил lkraider ранее, но с небольшими изменениями:

  1. Убедитесь, что вы устанавливаете Pylint в виртуальной среде. Обратите внимание, что при создании виртуальной среды вы не выбрали «Наследовать глобальные пакеты сайтов». Если вы это сделаете, то Pylint окажется глобально, и это не будет работать.

  2. Добавить новый внешний инструмент и настроить. Это немного отличается от того, что предоставил lkraider. Для одного я хотел, чтобы это выглядело больше как нормальный вывод pylint, следовательно, мой msg-шаблон (и фильтр вывода) немного отличается. Каждое свое .. Второе изменение более важно для выполнения pylint на основе виртуальной среды, то есть параметра программы, в котором я использую $ PyInterpreterDirectory $.

Program: $PyInterpreterDirectory$/pylint
Arguments: "--msg-template='{abspath}:{line:5d}:{column}: {msg_id}: {msg} ({symbol})'" --output-format=colorized "$FilePath$"
Working directory: $ProjectFileDir$
Output filters: $FILE_PATH$:\s*$LINE$\:\s*$COLUMN$:

Внешний инструмент для цилиндра

0
Erik