Jak zintegrować pep8.py z Eclipse?

90

Małe tło:

  • PEP 8 to przewodnik po stylu dla kodu w języku Python . Zawiera konwencje, których powinni przestrzegać wszyscy programiści Pythona.
  • pep8.py to (bardzo przydatny) skrypt, który sprawdza formatowanie kodu danego skryptu Pythona, zgodnie z PEP 8.
  • Eclipse to świetne IDE. Dzięki rozszerzeniu Pydev można go używać do programowania Pythona

Pep8.py uruchamiam ręcznie podczas tworzenia skryptów, ale przy większych projektach wolę używać Eclipse. Byłoby naprawdę przydatne zintegrowanie pep8.py w Eclipse / Pydev, aby można go było uruchamiać automatycznie we wszystkich plikach w projekcie i wskazywać wiersze zawierające ostrzeżenia. Może jest na to oczywisty sposób, ale jeszcze go nie znalazłem.

Pytanie brzmi: Jak zintegrować pep8.py z Eclipse?

David Arcos
źródło
3
Jest teraz domyślna integracja pep8. Zobacz: stackoverflow.com/questions/399956/…
Fabio Zadrozny
1
Biorąc pod uwagę, że sytuacja zmieniła się od czasu, gdy zaakceptowałeś odpowiedź Dmitrija Kochkina , czy mógłbym zasugerować, abyś zmienił zaakceptowaną odpowiedź na odpowiedź Fabio Zadroznego lub angelo.bixly ? Pomoże to przyszłym odwiedzającym, którzy, tak jak ja, zadali to pytanie od Google, umożliwiając nam najpierw znalezienie najbardziej aktualnych informacji - w przeciwnym razie może upłynąć dużo czasu, zanim te odpowiedzi zostaną zepchnięte na szczyt.
Mark Booth

Odpowiedzi:

87

Począwszy od PyDev 2.3.0, pep8jest on domyślnie zintegrowany z PyDev, nawet dostarczany z jego domyślną wersją.

Otwórz okno> Preferencje

Musi być włączony w PyDev> Editor> Code Analysis> pep8.py

Błędy / ostrzeżenia powinny być wyświetlane jako znaczniki (podobnie jak inne rzeczy w zwykłej analizie kodu).

Jeśli plik nie zostanie przeanalizowany, zobacz https://stackoverflow.com/a/31001619/832230 .

Fabio Zadrozny
źródło
6
Domyślnie pokazuje wiele ostrzeżeń. Jednak kiedy uruchamiam go z wiersza poleceń, pokazuje jeszcze więcej. Jak mogę przekonać go, aby wyświetlał wszystkie ostrzeżenia w Eclipse, tak jak pokazuje się, gdy jest uruchamiany z wiersza poleceń? Opcje są takie same. Również przekierowanie wyjścia pep8 na konsolę nic nie robi.
Krystian Cybulski
2
PyDev używa obecnie starszej wersji, ponieważ używa swojej wewnętrznej wersji Jython (która jest obecnie w wersji 2.2.1). Istnieją plany, aby uruchomić go zewnętrznie, aby uzyskać wyniki, lub zaktualizować wewnętrzny Jython, aby mógł obsługiwać nowsze wersje pep8.py.
Fabio Zadrozny
Najwyraźniej to nie działa z PyDev 4.2.0, żadne znaczniki nie są nigdy wyświetlane, ani w trybie ostrzeżenia, ani błędu.
Luís de Sousa
1
Właśnie przetestowałem to tutaj i działa dla mnie ... zwróć uwagę, że twoje źródła muszą znajdować się w folderze źródłowym (tj: w PYTHONPATH), aby działało (jeśli nadal nie działa, zgłoś problem w module śledzącym pydev ).
Fabio Zadrozny
Zaczęło działać, gdy ustawiłem go w tryb błędu. Występuje również opóźnienie od momentu aktywacji do rozpoczęcia oznaczania kodu.
Luís de Sousa
26

Nie wiem, jak zintegrować go z całym projektem, ale użyłem go jako zewnętrznego narzędzia do analizy pojedynczego pliku.

Zwróć uwagę, że pycodestylepakiet jest oficjalnym zamiennikiem i jest nowszą wersją pep8pakietu. Aby go zainstalować, uruchom:

$ sudo pip install --upgrade pycodestyle

Następnie w Eclipse:

  1. Wybierz Run-External Tools-External Tools Configurations ...
  2. Wybierz węzeł główny programu .
  3. Naciśnij przycisk Nowa konfiguracja uruchamiania .
  4. Wprowadź nazwę konfiguracji uruchamiania. Używam pycodestyle.
  5. Wypełnij następujące pola:

    Lokalizacja -${system_path:pycodestyle}

    Katalog roboczy -${container_loc}

    Argumenty - "${resource_name}"(używa aktualnie aktywnego pliku).

Przejdź do zakładki Wspólne i potwierdź, że pole wyboru Przydziel konsolę jest zaznaczone.

Zaletą tego podejścia jest to, że możesz używać bardzo aktualnej wersji pakietu i nie musisz ograniczać się do starej wersji dołączonej do PyDev. A jeśli ciekawi Cię konfiguracja pylintw podobny sposób, zobacz tę odpowiedź .

Dmitrij Kochkin
źródło
1
Jeśli otrzymujesz błąd Odwołania do zmiennej pusty wybór: $ {container_loc} nie zapomnij dodać swojego folderu źródłowego do PYTHONPATH (może go tam nie być, jeśli importujesz istniejący projekt do obszaru roboczego). Kliknij prawym przyciskiem myszy nazwę projektu> Właściwości> PyDev - PYTHONPATH> zakładka Foldery źródłowe i kliknij Dodaj folder źródłowy . Powinien działać jak urok.
berni
2
Jest teraz domyślna integracja pep8. Zobacz: stackoverflow.com/a/8532188/110451
Fabio Zadrozny,
1
Nie jest to tak przydatne do SPRAWDZANIA pep8, ponieważ jest to głównie dostępne w Eclispe - ale okazało się, że jest świetne dla autopep8! Dzięki
tom stratton
12
  1. Otwórz swoje Eclipse
  2. Przejdź do Pomocy i wybierz Zainstaluj nowe oprogramowanie
  3. Kliknij przycisk Dodaj, a pojawi się okno dialogowe „Dodaj repozytorium”
  4. Możesz użyć dowolnej nazwy. (Użyłem PyDev)
  5. Jako lokalizację wprowadź „http://pydev.org/updates”
  6. Kliknij OK.
  7. Jesteś teraz w trakcie instalacji. Poczekaj, aż się skończy.
  8. Po instalacji zamknij Eclipse i otwórz go ponownie.
  9. Teraz, gdy PyDev jest zainstalowany w Twoim Eclipse, przejdź do Okno-> Preferencje
  10. Wybierz PyDev-> Editor-> Code Analysis
  11. Przejdź do zakładki pep8.py
  12. Wybierz przycisk opcji ostrzeżenia i kliknij OK.

Otóż ​​to. Twoje Eclipse IDE jest teraz zintegrowane z PEP8. Aby automatycznie uruchomić pep8.py, kliknij prawym przyciskiem myszy edytor projektu. Wybierz PyDev i kliknij „analiza kodu”. Na karcie problemów w obszarze roboczym zobaczysz ostrzeżenia wskazujące linię, w której dokonałeś naruszenia w PEP8 (jeśli naruszyłeś).

Niesamowity Angelo
źródło
Coś bardzo dziwnego polega na tym, że bez względu na to, jak bardzo próbowałem skonfigurować pep8, ostrzeżenia i znaczniki informacyjne w edytorze nie pojawiały się. Dopóki nie dodałem widoku „Problemy”, nagle zadziałało to jak urok ...
Agey
10

ANALIZA KODÓW:

W Eclipse ( PyDev ), jeśli chcesz przeprowadzić analizę kodu w stylu pep8, to

Przejdź do: Windows -> Preferencje -> PyDev -> Edytor -> Analiza kodu -> zakładka pep8.py i wybierz Ostrzeżenie kliknij Zastosuj i OK.

W kodzie Pythona, jeśli sprawdzisz poprawność stylu kodowania pep8, otrzymasz ostrzeżenie

AUTOMATYCZNE FORMATOWANIE KODU:

W Eclipse ( PyDev ), jeśli chcesz automatycznie formatować kod Pythona przy użyciu stylu pep8

Przejdź do: Windows -> Preferencje -> PyDev -> Edytor -> Styl kodu -> Formatowanie kodu -> kliknij pole wyboru (Czy użyć autopep8.py do formatowania konsoli? ) Kliknij Zastosuj i OK.

Jeśli chcesz zwiększyć długość linii (domyślnie pep8 to 79) poniżej Użyj autopep8.py możesz ustawić typ parametru --max-line-length=150jeśli ustawisz maksymalną długość na 150

Jeśli naciśniesz skrót do automatycznego formatowania ( Ctrl + Shift + f ), automatycznie sformatuje twój kod Pythona, jak w stylu pep8

Sagar Pise
źródło
6

Wydaje się, że nie jest to jeszcze w pełni zintegrowane z Pydevem.

Jak zasugerowano w tym poście ,

[to] wymagałoby zmiany kodu w pydev - elastyczną opcją byłoby dodanie preferencji, które pozwolą użytkownikowi wybrać, do których wzorców chce dopasować przy tworzeniu hiperłączy (i powiedzieć, która grupa w dopasowaniu jest linią, a która jest plik)...

Możesz też spróbować zakodować na sztywno, grając z: org.python.pydev.debug.ui.PythonConsoleLineTracker (powinno być dość łatwe do zrozumienia).

Prośba istnieje na prawie, ale to wydaje się być wciąż otwarta 1 rok po jego powstania ...

VonC
źródło