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

90

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

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

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

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

Дэвид Аркос
источник
3
Теперь есть интеграция с pep8 по умолчанию. См .: stackoverflow.com/questions/399956/…
Фабио Задрозный 01
1
Учитывая, что ситуация изменилась с тех пор, как вы приняли ответ Дмитрия Кочкина , могу ли я предложить вам изменить принятый ответ либо на ответ Фабио Задрозного, либо на ответ angelo.bixly ? Это поможет будущим посетителям, которые, как и я, пришли к этому вопросу от Google, позволяя нам сначала найти самую свежую информацию - в противном случае может потребоваться много времени, чтобы эти ответы оказались наверху.
Марк Бут

Ответы:

87

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

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

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

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

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

Фабио Задрозный
источник
6
По умолчанию он показывает множество предупреждений. Однако когда я запускаю его из командной строки, он показывает еще больше. Как я могу убедить его отображать все предупреждения в Eclipse, как они отображаются при запуске из командной строки? Варианты такие же. Кроме того, перенаправление вывода pep8 на консоль ничего не делает.
Кристиан Цибульски
2
PyDev в настоящее время использует более старую версию, потому что он использует внутреннюю версию Jython (в настоящее время это 2.2.1). Планируется либо запустить его извне для получения результатов, либо обновить внутренний Jython, чтобы иметь возможность поддерживать более новые версии pep8.py.
Фабио Задрозный
По-видимому, это не работает с PyDev 4.2.0, маркеры никогда не отображаются ни в режиме предупреждения, ни в режиме ошибки.
Луис де Соуза,
1
Просто протестировал его здесь, и он действительно работает для меня ... обратите внимание, что ваши источники должны находиться в исходной папке (например, в PYTHONPATH), чтобы он работал (если это все еще не работает, сообщите о проблеме в трекере pydev ).
Fabio Zadrozny
Он начал работать, как только я установил его в режим ошибки. Также есть задержка с момента активации до начала маркировки кода.
Луис де Соуза
26

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

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

$ sudo pip install --upgrade pycodestyle

Далее в Eclipse:

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

    Расположение -${system_path:pycodestyle}

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

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

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

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

Дмитрий Кочкин
источник
1
Если вы получаете сообщение об ошибке Переменные ссылаются на пустой выбор: $ {container_loc} не забудьте добавить исходную папку в PYTHONPATH (ее может не быть, если вы импортируете существующий проект в рабочую область). Щелкните правой кнопкой мыши имя проекта> Свойства> PyDev - PYTHONPATH> вкладка Исходные папки и нажмите Добавить исходную папку . Должно работать как шарм.
Берни
2
Теперь есть интеграция с pep8 по умолчанию. См .: stackoverflow.com/a/8532188/110451
Фабио Задрозный,
1
Это не так полезно для pep8 CHECKING, поскольку это в основном доступно в Eclispe, но я нашел его отличным для autopep8! Спасибо
Tom Stratton
12
  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
10

АНАЛИЗ КОДА:

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

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

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

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

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

Перейдите в: Windows -> Настройки -> PyDev -> Редактор -> Стиль кода -> Форматирование кода -> установите флажок ( Использовать autopep8.py для форматирования консоли? ) Нажмите Применить и кнопку ОК.

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

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

Сагар Писе
источник
6

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

Как предлагается в этом сообщении ,

[это] потребует изменения кода в pydev - гибким вариантом будет добавление настроек, позволяющих пользователю выбирать, какие шаблоны он хочет сопоставить для создания гиперссылок (и указывать, какая группа в совпадении является строкой, а какая - файл)...

Или вы можете попробовать жестко запрограммированную игру с: org.python.pydev.debug.ui.PythonConsoleLineTracker (должно быть довольно легко понять).

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

VonC
источник