Как установить pylint в pycharm mac os

Обновлено: 04.07.2024

В сообществе Python, как и в любой другой группе людей, существует некое коллективное знание. Множество людей прошлось по всем возможным граблям и получило опыт через набитые шишки. Затем через какое-то время, благодаря выступлениям на конференциях, официальным заявлениям, документам, статьям в блогах, код-ревью и личному общению, это знание стало коллективным. Теперь мы просто называем его “хорошими практиками”.

К таким хорошим практикам можно отнести, например, следующие.

  • Форматировать код по PEP8 — если этого не делать, то другим людям будет намного сложнее понимать ваш код; в плохо оформленном коде сложнее увидеть суть, потому что мозг постоянно отвлекается на не несущие смысловой нагрузки особенности оформления.
  • Не допускать объявленных, но неиспользуемых переменных/функций/импортов — опять же, это усложняет восприятие кода; читателю потребуется потратить время на то, чтобы осознать, что вот на эту сущность обращать внимания не нужно.
  • Писать короткие функции — слишком сложные функции с большим количеством ветвлений и циклов тяжело понимать.
  • Не использовать изменяемый объект в качестве значения аргумента функции по умолчанию — иначе в результате можно получить очень неожиданные эффекты.

Соблюдать (и даже просто помнить) все хорошие практики — не самая простая задача. Зачастую люди плохо справляются с тем, чтобы отсчитывать пробелы и контролировать переменные, и вообще склонны допускать ошибки по невнимательности. Таковы люди, ничего не поделаешь. Машины, наоборот, прекрасно справляются с такими хорошо определёнными задачами, поэтому появились инструменты, которые контролируют следование хорошим практикам.

В компилируемых языках ещё на этапе компиляции программист может получить по щщам первый полезный фидбэк о написанном коде. Компилятор проверит, что код валиден и может быть скомпилирован, а также может выдать предупреждения и рекомендации, как сделать код лучше или читаемее. Т.к. Python является интерпретируемым языком, где этап компиляции как таковой отсутствует, линтеры особенно полезны. На самом деле, это очень важно и круто — узнать, что твой код как минимум является валидным Python-кодом, даже не запуская его.

В этом посте я рассмотрю два самых популярных линтера для Python:

Термин “lint” впервые начал использоваться в таком значении в 1979 году. Так называлась программа для статического анализа кода на C, которая предупреждала об использовании непортабельных на другие архитектуры языковых конструкций. С тех пор “линтерами” называют любые статические анализаторы кода, которые помогают находить распространённые ошибки, делать его однообразным и более читаемым. А названо оно "lint" в честь вот такой штуки:

lint roller

flake8

flake8 — это утилита-комбайн, которая органично объединяет в себе несколько других анализаторов кода ( pycodestyle , pyflakes и mccabe ), а также имеет огромную экосистему плагинов, которые могут добавить к стандартной поставке ещё кучу различных проверок. На данный момент, это самый популярный линтер для Python-кода. Кроме того, он предельно прост в настройке и использовании.

Установка

flake8 устанавливается, как и любой другой Python-пакет, через pip . Внутри виртуального окружения проекта выполните:

Если вы пользуетесь pipenv , то flake8 нужно устанавливать как dev-зависимость (ведь для работы программы линтер не нужен, он нужен только для разработчика):

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

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

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

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

найти pylint установка папке:

откройте окно настроек PyCharm с помощью File -> Settings , выберите Tools -> External Tools на боковой панели. (Или поиск "внешний инструменты")

PyCharm External tools

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

PyCharm Edit Tool

выполнить pylint от Tools -> External Tools -> pylint :

PyCharm External Tools

посмотрите свой вывод в терминале PyCharm

PyCharm terminal

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

обновление:

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

PyCharm check entire project

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

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

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

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

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

pylint arguments

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

enter image description here

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

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

затем в PyCharm создайте новый внешний инструмент с этими настройками:

PyLint for PyCharm External Tool settings screenshot

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

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

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

здесь пример С хорошими параметрами.

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

Pylint PyCharm screenshot

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

enter image description here

Как только вы его установили, проверка в реальном времени работает автоматически. Для on-demand у вас есть несколько вариантов, которые идут от просто проверки текущего открытого файла для сканирования всего проекта:

Используйте Pylint в PyCharm для управления качеством кода Python

Введение

Эта статья в основном знакомит с настройкой и использованием pylint, как установить, см.pylint установить, Для получения дополнительной информации см. Справочный документ на официальном сайте pylint.Pylint User Manual。

Получить справочную информацию

После успешной установки pylint вы можете быстро просмотреть справочную информацию о pylint, запустив «pylint --help»; соответствующая информация может в основном поддерживать основные функции быстрого использования pylint.

Создать файл конфигурации

Проверить исходные файлы

После настройки файла конфигурации rcfile вы можете использовать pylint для запуска проверки конфигурации исходного файла. Вы можете использовать аналогичную команду "pylint --rcfile = / home / bob / pylint.conf /opt/app/login/login.py" По завершении параметры команды включают путь к файлу конфигурации и путь к исходному файлу.

pylint сгенерирует отчет о проверке. Теперь давайте проанализируем его содержание:

  1. Messages by category
  2. --------------------
  3. +-----------+-------+---------+-----------+
  4. |type |number |previous |difference |
  5. +===========+=======+=========+===========+
  6. |convention |2 |2 |= |
  7. +-----------+-------+---------+-----------+
  8. |refactor |0 |0 |= |
  9. +-----------+-------+---------+-----------+
  10. |warning |11 |11 |= |
  11. +-----------+-------+---------+-----------+
  12. |error |0 |0 |= |
  13. +-----------+-------+---------+-----------+
  1. Messages
  2. --------
  3. +------------------+------------+
  4. |message id |occurrences |
  5. +==================+============+
  6. |mixed-indentation |8 |
  7. +------------------+------------+
  8. |unused-import |2 |
  9. +------------------+------------+
  10. |invalid-name |2 |
  11. +------------------+------------+
  12. |redefined-builtin |1 |
  13. +------------------+------------+

Получите справочную информацию о будильнике

Если вам нужно получить справочную информацию для определенного типа сигнала тревоги, вы можете использовать команду «pylint --help-msg <msg-id>», чтобы получить:

Частично закрыть тип тревоги

В некоторых случаях может потребоваться отключить определенные типы алармов в файле вместо глобальной конфигурации файла конфигурации. Для достижения цели можно использовать следующие методы. Некоторые проверки можно отключить с помощью комментариев, например Неиспользуемые параметры функции meth2 не проверяются.

резюме

Справка

Pylint - это инструмент анализа кода Python, который анализирует ошибки в коде Python и находит код, который не соответствует стандартам стиля кодирования и имеет потенциальные проблемы.

Pylint - это инструмент Python. В дополнение к обычным инструментам анализа кода он предоставляет дополнительные функции: такие как проверка длины строки кода, соответствия имен переменных стандартам именования, фактической реализации объявленного интерфейса и т. Д.

Большим преимуществом Pylint является его высокая настраиваемость, высокая настраиваемость и простота написания небольших плагинов для добавления функций.

В проекте требуется проверка спецификации кода, поэтому изучите ееpylintиспользование.

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

Создайте файл конфигурации по умолчанию:

Проверьте текущий каталог, файл с именемpylint.confFile, элементы конфигурации в файлеpylintКонфигурация по умолчанию - более 400 строк.

проверить отдельный файл:

Вышеуказанный формат в отчете представляет собой обзор результатов проверки: C означает соглашение, стандарт; W означает предупреждение, предупреждение; результаты pylint имеют в общей сложности четыре уровня: ошибка, предупреждение, рефакторинг, соглашение, и соответствующий уровень может быть определен по первой букве.1, 0Указывает номер строки и номер столбца в файле, где находится аварийный сигнал.

Проверьте весь проект:

Переименуйте pylint.conf в .pylintrc, то есть нет необходимости переносить параметр --rcfile каждый раз, когда вы его выполняете:

Откройте диалог File-> Settings:



Нажмите на Tools в External Tools , Добавить внешний инструмент:


После изменения кода таким образом в меню «Инструменты» появится больше.pylintИнструменты до:


Если вам нужен текущий файл pylint, просто запустите инструмент pylint выше.

1) Установка Pylint

Используйте pip install pylint непосредственно под cmd (если pip недоступен, сначала установите последнюю версию Python, pip будет установлен по умолчанию, или найдите сценарий установки pip, чтобы сначала установить pip). После установки pylint.exe обычно находится в папке C: / Python27 / Scripts /. Добавьте этот путь в переменную среды PATH.

Используйте $ sudo pip install pylint для установки непосредственно в Терминале. После установки pylint будет в / usr / bin / pylint

2) Настроить PyCharm

Файл> Настройки . > Инструменты> Внешние инструменты, щелкните знак +, чтобы добавить, настройте, как показано ниже,

Program Установить как: указать фактический каталог pylint, вот каталог Linux в качестве примера.

Parameters Установить как (пользователи могут выбрать формат отображения выходной информации pylint и элементы, которые должны быть отключены в соответствии с их собственной ситуацией): --output-format = parseable --disable = R --disable = C0102, C0103, C0111, C0301, C0302, C0303 , C0304, C0305, W0120, W0123, W0401, W0603, W0612, W0614, W0621, W0622, W0703, E1003, E1101 $ FilePath $

Примечание. Чтобы Pylint не выводил предупреждение о том, что файл конфигурации не может быть найден, вы можете создать пустой файл в текущем каталоге проекта, назвать его .pylintrc и добавить параметр --rcfile = path / to / .pylintrc к указанным выше параметрам. может.

Working Direcroty Установить как: $ FileDir $


3) Используйте Pylint для оценки качества кода

После написания скрипта щелкните правой кнопкой мыши и выберите «Внешние инструменты»> «pylint». После запуска вы можете получить текущее качество кода и предложения по его улучшению.

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

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

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

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

Найдите вашу pylint установки pylint :

Откройте окно настроек PyCharm с помощью меню " File → Settings , затем перейдите к " Tools → External Tools на боковой панели. (Или поиск "внешние инструменты")

Изображение 120347

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

Изображение 120348

Запустите pylint из Tools → External Tools → pylint :

Изображение 120349

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

Изображение 120350

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

Обновить:

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

Изображение 120351

@stevenVascellaro, вы можете проверить эту ссылку . Или вы можете найти, где pylint был установлен на вашем компьютере. Благодарю. Я добавил инструкции для пользователей Windows. @StevenVascellaro StevenVascellaro, большое спасибо за ваш вклад!

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

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

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

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

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

Изображение 120352

Эти настройки работают на Windows тоже на случай, если кому-то интересно.

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

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

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

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

Изображение 120353

Теперь запустите его из Сервис → Внешние инструменты → PyLintPyCharm. Каждая строка вывода будет связана с соответствующей позицией в исходном коде.

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

Изображение 120354

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

Изображение 120355

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

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

Это выглядит хорошо. К сожалению, он выдает исключение при запуске - ему не нравится версия pylint, установленная в / usr / bin, и он не использует pylint из проекта virtualenv. Я буду постоянно проверять наличие обновлений, потому что ваш плагин выглядит как идеальное решение :-) Привет, если вы еще этого не сделали, пожалуйста, откройте вопрос здесь, прикрепив также файл idea.log . У меня был быстрый взгляд, и это, кажется, дубликат № 29. Я добавлю соответствующие строки из моего журнала к этой проблеме. @AaronF Вам нужно будет вручную установить путь к пилинту, который установлен на вашем virtualenv. напр .: projectvenv / bin / pylint вместо / usr / bin / pylint

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

Изображение 120356

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

@lkraider Я не вижу соответствующей разницы. Вы разделяете строку и столбец запятой, которую я пробовал - это не сработало. Тогда вы убегаете от толстой кишки, которая не должна быть необходимой. Я испробовал ваше полное решение для msg-template и Output filters но столбец не был обнаружен. Может быть, что-то еще не так, вы можете определить проблему? Я работаю с PyCharm 2018.1.2. Как вы тестируете обнаружение? Шахта не подчеркивает номер строки, как ваша (ни колонка), но нажатие на ссылку перемещает курсор в правильное положение. Я обнаружил проблему, действительно, если номер строки показан с подчеркиванием, ссылка не будет работать. Это произойдет в моем примере, когда строка> 99. Когда есть разделение пробелов, ссылка будет правильно размещать каретку в столбце.

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

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

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

Я думаю, что вы используете Windows. Пилинт работает на терминале? Я использую Mac. Я установил Pylint только в виртуальной среде, в которой я работаю, и Pylint не работает на обычном терминале. После того, как я установил Pylint в системе, Pylint работал в PyCharm! Спасибо! @RodChen У меня также есть установка pylint в виртуальной среде. Я указал PyCharm на интерпретатор python моей виртуальной среды, и он, кажется, работает нормально. Я очень pylint с pylint , так что, возможно, вы имеете в виду некоторые конкретные функции, о которых я не знаю.

Роберто Лейнарди создал плагин pylint для pycharm, который действительно работает и хорошо интегрируется в IDE:

У меня пока небольшой, но счастливый опыт! Слава Роберто.

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

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

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

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

Читайте также: