Jak uruchomić Pylint z PyCharm

Chcę skonfigurować pylint jako zewnętrzne narzędzie w całym katalogu projektu dla projektu Pythona, nad którym pracuję. Próbowałem użyć repozytorium jako modułu z __init__.py i bez, I to nie działa w obie strony.

Mam problem z ustawieniem pylint do uruchamiania z PyCharm. Wiem, że powinienem go uruchamiać jako zewnętrzne narzędzie, jednak ustawienia mnie mylą.

Autorytatywne źródło w ich dokumentacji jest zepsute, więc nie mogę tego sprawdzić ani jedno, ani drugie.

Author: Wasif Hyder, 2016-07-01

6 answers

Możesz skonfigurować pylint do pracy z PyCharm, wykonując następujące kroki:

  1. Install pylint:

    $ pip install pylint
    
  2. Znajdź swój pylint Folder instalacyjny:

    $ 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. Otwórz okno ustawień PyCharm za pomocą File -> Settings, a następnie przejdź do Tools -> External Tools na pasku bocznym. (Lub Szukaj " narzędzia zewnętrzne")

    Narzędzia zewnętrzne PyCharm

  4. Skonfiguruj zewnętrzne narzędzie klikając na znak + i wypełniając pola odpowiednio. W Program użyj ścieżki, którą uzyskałeś podczas uruchamiania which pylint, dla pozostałych wartości możesz użyć tego samego obrazu.

    Narzędzie Do Edycji PyCharm

  5. Run pylint from Tools -> External Tools -> pylint:

    Narzędzia Zewnętrzne PyCharm

  6. Spójrz na swoje wyjście w Terminalu PyCharm

    Terminal PyCharm

Aby uzyskać więcej informacji, zapoznaj się z Pylinting z PyCharm.

Update:

Jeśli chcesz aby użyć pylint, aby sprawdzić cały projekt lub konkretny plik lub katalog, możesz kliknąć prawym przyciskiem myszy na głównym projekcie, pliku lub katalogu, a następnie External Tools -> pylint, Jak pokazano poniżej.

PyCharm sprawdź cały projekt

 62
Author: lmiguelvargasf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-27 16:49:07

Ponieważ nie znalazłem działającej gotowej konfiguracji, są to ustawienia, których używam w PyCharm CE 2018.1 na macOS:

1 - pip install pylint w Twoim projekcie virtualenv lub globalnie

2-Dodaj nowe zewnętrzne narzędzie i skonfiguruj:

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$:

Zwróć uwagę na wymagane podwójne cudzysłowy dla szablonu msg oraz znaki specjalne dla filtrów wyjściowych. Filtr wyjściowy pozwala kliknąć na ścieżce pliku i otworzyć lokalizację w edytorze źródeł IDE.

Jedyną brakującą funkcją byłoby wyjście filtry do rysowania opisów lint bezpośrednio w widoku źródłowym, jak to ma miejsce w przypadku wbudowanego lintera. W tej chwili jednak nie ma takiej funkcji.

argumenty pylint

 14
Author: lkraider,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-15 00:06:29

Notatka o poprzednich odpowiedziach. Szukałem metody, aby PyCharm wiedział o składni wyjściowej, więc mogę bezpośrednio przejść do lokalizacji plików. To działa bez użycia dodatkowych narzędzi.

Pylint może być skonfigurowany do wysyłania wiadomości w określonym formacie za pomocą opcji msg-template w pliku pylintrc lub opcji CLI --msg-template.

Ustawiłem na: msg-template='{abspath}:{line}:{column}: {msg_id} {msg}'

W Ustawieniach zewnętrznych narzędzi, Output filters: można ustawić na $FILE_PATH$:$LINE$:$COLUMN$: .* więc PyCharm pokazuje linki bezpośrednio do zgłoszone lokalizacje. Można to połączyć z output-format=colorized więc dostaję to: Tutaj wpisz opis obrazka PyCharm nie rozpoznaje kolumny pomimo jej skonfigurowania. Ale posiadanie pliku i linii mi wystarczy.

 5
Author: ub_marco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-25 08:48:15

Kolega wskazał mi pylint-pycharm na Githubie. Jest to owijarka wokół pylint z wyjściem sformatowanym dla PyCharm. Oto jak to ustawiłem:

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

To tworzy build/scripts-2.7/pylint-pycharm

Następnie w PyCharm utwórz nowe narzędzie zewnętrzne z tymi ustawieniami:

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

PyLint dla zewnętrznych ustawień narzędzia PyCharm zrzut ekranu

Teraz uruchom go z Narzędzia - > Narzędzia zewnętrzne - > PyLintPyCharm. Każda linia wyjścia zostanie hiperłączona do odpowiedniej pozycji w kodzie źródłowym.

 4
Author: Aaron F,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-31 18:31:16

Na początku zainstaluj pylint za pomocą pip:

pip install pylint

Musisz otworzyć "Ustawienia > Narzędzia > Narzędzia zewnętrzne" i nacisnąć przycisk " + " w PyCharm.

Oto przykład z dobrymi ustawieniami.

 3
Author: ikreb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-28 08:51:59

Możesz spróbować tego pylint PyCharm plugin :

Pylint PyCharm zrzut ekranu

Zapewnia zarówno skanowanie w czasie rzeczywistym, jak i na żądanie plików Pythona za pomocą Pylint z poziomu PyCharm / IDEA.

Po zainstalowaniu, kontrola w czasie rzeczywistym działa automatycznie. Na żądanie masz kilka opcji, które przechodzą od sprawdzania bieżącego otwartego pliku do skanowania całego projektu: Tutaj wpisz opis obrazka

(tylko dla przejrzystości, jestem deweloperem)

 1
Author: Roberto Leinardi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-01 22:47:56