Как интегрировать pep8.py в Eclipse?

Немного предыстории:

  • PEP 8 - это Руководство по стилю кода Python. Он содержит соглашения, которым должны следовать все программисты на Python.
  • pep8.py - это (очень полезный) скрипт, который проверяет формирование кода данного скрипта Python в соответствии с PEP 8.
  • Затмение - отличная IDE. С расширением Pydev его можно использовать для разработки Python

Я запускаю pep8.py вручную, когда пишу сценарии, но с более крупными проектами я предпочитаю использовать Eclipse. Было бы действительно полезно интегрировать pep8.py в Eclipse / Pydev, чтобы он мог автоматически запускаться во всех файлах проекта и указывать на строки, содержащие предупреждения. Может быть, есть очевидный способ сделать это, но я его еще не нашел.

Вопрос: Как интегрировать pep8.py в Eclipse?

Теперь есть интеграция с pep8 по умолчанию. См .: stackoverflow.com/questions/399956/…

Fabio Zadrozny 01.01.2012 18:10

Учитывая, что ситуация изменилась с тех пор, как вы приняли ответ Дмитрий Кочкин, могу ли я предложить вам изменить принятый ответ на ответ Фабио Задрозный или ответ angelo.bixly? Это поможет будущим посетителям, которые, как и я, пришли к этому вопросу от Google, позволяя нам сначала найти самую свежую информацию - в противном случае может потребоваться много времени, чтобы эти ответы оказались наверху.

Mark Booth 02.02.2012 17:32
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
90
2
34 694
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Похоже, что это еще не полностью интегрировано в Pydev.

Как предлагается в эта почта,

[it] would require changing the code within pydev -- a flexible option would be adding preferences to let the user choose to which patterns he wants to match for creating hyperlinks (and saying which group in the match is the line and which one is the file)...

Or, you can try it hard-coded playing with: org.python.pydev.debug.ui.PythonConsoleLineTracker (should be pretty easy to grasp).

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

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

Обратите внимание, что пакет pycodestyle является официальной заменой и является более новой версией пакета pep8. Чтобы установить его, запустите:

$ sudo pip install --upgrade pycodestyle

Далее в Eclipse:

  1. Выберите Запуск - Внешние инструменты - Конфигурации внешних инструментов ...
  2. Выберите корневой узел Программа.
  3. Нажмите кнопку Новая конфигурация запуска.
  4. Введите Имя для вашей конфигурации запуска. Пользуюсь pycodestyle.
  5. Заполните следующие поля:

    Место расположения - ${system_path:pycodestyle}

    Рабочий каталог - ${container_loc}

    Аргументы - "${resource_name}" (Использует текущий активный файл.)

Перейдите на вкладку Общий и убедитесь, что установлен флажок Назначить консоль.

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

Если вы получаете ошибку Переменная ссылается на пустой выбор: $ {container_loc}, не забудьте добавить исходную папку в PYTHONPATH (ее может не быть, если вы импортируете существующий проект в рабочую область). Щелкните правой кнопкой мыши имя проекта> Свойства> PyDev - PYTHONPATH> вкладка Исходные папки и щелкните Добавить исходную папку. Должно работать как шарм.

berni 18.05.2011 20:55

Теперь есть интеграция с pep8 по умолчанию. См .: stackoverflow.com/a/8532188/110451

Fabio Zadrozny 16.12.2011 13:32

Это не так полезно для ПРОВЕРКИ pep8, поскольку это в основном доступно в Eclipse, но я нашел его отличным для autopep8! Спасибо

tom stratton 21.01.2013 19:22

Вы этого не сделаете :) Вместо этого вы воспользуетесь очень хорошей интеграцией с PyLint и сконфигурируете PyLint для проверки всех проверок PEP8. См. Как настроить PyLint для проверки всего, что проверяет PEP8?

Ответ принят как подходящий

Начиная с PyDev 2.3.0, pep8 интегрирован в PyDev по умолчанию, даже если поставляется с его версией по умолчанию.

Открыть окно> Настройки

Его необходимо включить в PyDev> Редактор> Анализ кода> pep8.py.

Ошибки / предупреждения должны отображаться в виде маркеров (как и все остальное при обычном анализе кода).

Если файл не проанализирован, см. https://stackoverflow.com/a/31001619/832230.

По умолчанию он показывает множество предупреждений. Однако когда я запускаю его из командной строки, он показывает еще больше. Как я могу убедить его отображать все предупреждения в Eclipse, как они отображаются при запуске из командной строки? Варианты такие же. Кроме того, перенаправление вывода pep8 на консоль ничего не делает.

Krystian Cybulski 01.03.2013 17:53

PyDev в настоящее время использует более старую версию, поскольку он использует внутреннюю версию Jython (в настоящее время это 2.2.1). Планируется либо запустить его извне для получения результатов, либо обновить внутренний Jython, чтобы иметь возможность поддерживать более новые версии pep8.py.

Fabio Zadrozny 09.02.2014 14:24

По-видимому, это не работает с PyDev 4.2.0, маркеры никогда не отображаются ни в режиме предупреждения, ни в режиме ошибки.

Luís de Sousa 27.07.2015 14:50

Просто протестировал его здесь, и он действительно работает для меня ... обратите внимание, что ваши источники должны находиться в исходной папке (например, в PYTHONPATH), чтобы он работал (если это все еще не работает, сообщите о проблеме в трекере pydev ).

Fabio Zadrozny 27.07.2015 15:16

Он начал работать, как только я установил его в режим ошибки. Также есть задержка с момента активации до начала маркировки кода.

Luís de Sousa 28.07.2015 09:49

Я обнаружил, что он игнорирует настроенные аргументы, если вы не укажете ему использовать системный интерпретатор.

Don Kirkby 07.10.2015 01:08
  1. Откройте свой Eclipse
  2. Перейдите в раздел «Справка» и выберите «Установить новое программное обеспечение».
  3. Нажмите кнопку «Добавить», и появится диалоговое окно «Добавить репозиторий».
  4. Вы можете использовать для этого любое имя. (Я использовал PyDev)
  5. В качестве местоположения введите http://pydev.org/updates.
  6. Щелкните ОК.
  7. Сейчас вы в процессе установки. Просто подождите, пока он закончится.
  8. После установки закройте Eclipse и снова откройте его.
  9. Теперь, когда PyDev установлен в вашем Eclipse, перейдите в Window-> Preferences
  10. Выберите PyDev-> Editor-> Анализ кода.
  11. Перейдите на вкладку pep8.py
  12. Выберите переключатель для предупреждения и нажмите ОК.

Вот и все. Ваша Eclipse IDE теперь интегрирована с PEP8. Чтобы запустить pep8.py автоматически, щелкните правой кнопкой мыши редактор проекта. Выберите PyDev и нажмите «Анализ кода». На вкладке «Проблемы» в рабочем пространстве вы увидите предупреждения, указывающие на строку, в которой вы допустили нарушение в PEP8 (если вы нарушили).

Что-то очень странное в том, что как бы я ни пытался настроить pep8, предупреждения и информационные маркеры в редакторе не отображались. Так было до тех пор, пока я не добавил представление «Проблемы», потом оно внезапно сработало как шарм ...

Agey 17.10.2018 17:09

АНАЛИЗ КОДА:

В Eclipse (PyDev), если вы хотите использовать анализ кода в стиле pep8, тогда

Перейдите в: Windows -> Настройки -> PyDev -> Редактор -> Анализ кода -> вкладка pep8.py и выберите Предупреждение, нажмите кнопку «Применить» и «ОК».

В вашем коде python, если вы проверяете стиль кодирования pep8, вы получите предупреждение

АВТОМАТИЧЕСКОЕ ФОРМАТИРОВАНИЕ КОДА:

В Eclipse (PyDev), если вы хотите использовать код Python Автоформат с использованием стиля pep8, тогда

Перейдите в: Windows -> Preferences -> PyDev -> Editor -> Code Style -> Code Formatter -> установите флажок (Использовать autopep8.py для форматирования консоли?), нажмите кнопку Apply и OK.

Если вы хотите увеличить длину строки (pep8 по умолчанию 79) ниже Используйте autopep8.py, вы можете установить тип параметра --max-line-length=150, если вы установите максимальную длину на 150

Если нажать ярлык автоформатирования (Ctrl + Shift + F), он автоматически отформатирует ваш код Python, как стиль pep8

Другие вопросы по теме