web-dev-qa-db-ger.com

Wie man Pylint mit PyCharm laufen lässt

Ich möchte pylint als externes Werkzeug in meinem gesamten Projektverzeichnis für ein Python-Projekt konfigurieren, an dem ich gerade arbeite. Ich habe versucht, das Repository als Modul mit __init__.py und ohne zu verwenden, und es funktioniert in keiner Weise.

Ich habe Schwierigkeiten, Pylint so einzurichten, dass es mit PyCharm läuft. Ich weiß, dass ich es als externes Tool ausführen sollte, die Einstellungen verwirren mich jedoch. 

Die maßgebliche Quelle in ihrer Dokumentation ist kaputt, daher kann ich das auch nicht überprüfen.

39
Wasif Hyder

Sie können pylint für die Zusammenarbeit mit PyCharm einrichten, indem Sie die folgenden Schritte ausführen:

  1. pylint installieren:

    $ pip install pylint
    
  2. Suchen Sie Ihren pylint Installationsordner:

    $ 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. Öffnen Sie das PyCharm-Einstellungsfenster mit File -> Settings und navigieren Sie dann in der Seitenleiste zu Tools -> External Tools. (Oder suchen Sie nach "externen Tools")

     PyCharm External tools

  4. Richten Sie ein externes Werkzeug ein, indem Sie auf das Pluszeichen klicken und die Felder entsprechend ausfüllen. Verwenden Sie in Program den Pfad, den Sie beim Ausführen von which pylint erhalten haben. Für die anderen Werte können Sie dasselbe Bild verwenden.

     PyCharm Edit Tool

  5. Führen Sie pylint von Tools -> External Tools -> pylint aus:

     PyCharm External Tools

  6. Sehen Sie sich Ihre Ausgabe im PyCharm-Terminal an

     PyCharm terminal

Weitere Informationen finden Sie unter Pylinting with PyCharm .

Update:

Wenn Sie pylint verwenden möchten, um Ihr gesamtes Projekt oder eine bestimmte Datei oder ein bestimmtes Verzeichnis zu überprüfen, können Sie mit der rechten Maustaste auf das Projektstammverzeichnis, die Datei oder das Verzeichnis klicken und dann External Tools -> pylint wie unten gezeigt.

 PyCharm check entire project

78
lmiguelvargasf

Da ich kein funktionsfähiges Setup gefunden habe, verwende ich diese Einstellungen in PyCharm CE 2018.1 unter macOS:

1 - pip install pylint in Ihrem Projekt virtuell oder global

2 - Neues externes Werkzeug hinzufügen und konfigurieren:

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

Beachten Sie die erforderlichen Anführungszeichen für die msg-template und die Escape-Zeichen für die Ausgabefilter. Mit dem Ausgabefilter können Sie auf den Dateipfad klicken und den Speicherort im Quelleditor IDE öffnen.

Das einzige fehlende Feature wären die Ausgabefilter, um die Flusenbeschreibungen direkt in die Quellansicht zu zeichnen, wie dies beim integrierten Linter der Fall ist. Zu diesem Zeitpunkt ist dies jedoch nicht möglich.

 pylint arguments

20
lkraider

Edit: Ich benutze und empfehle jetzt das Pycharm Plugin , das beim ersten Schreiben dieser Antwort nicht existierte.


Ein Kollege zeigte auf pylint-pycharm auf GitHub . Es ist ein Wrapper um Pylint, dessen Ausgabe für PyCharm ..__ formatiert ist. So habe ich es eingerichtet:

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

Dies erstellt build/scripts-2.7/pylint-pycharm

Dann erstellen Sie in PyCharm ein neues External Tool mit diesen Einstellungen:

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

 PyLint for PyCharm External Tool settings screenshot

Führen Sie es nun über Tools -> External Tools -> PyLintPyCharm ..__ aus. Jede Ausgabezeile wird mit der entsprechenden Position im Quellcode verlinkt.

5
Aaron F

Ein Hinweis zu den vorherigen Antworten . Ich habe nach einer Methode gesucht, um PyCharm auf die Ausgabesyntax aufmerksam zu machen, damit ich direkt zu den Speicherorten springen kann. Das geht ohne zusätzliche Werkzeuge.

Pylint kann so konfiguriert werden, dass Meldungen in einem bestimmten Format mit der Option msg-template in der Datei pylintrc oder der CLI-Option --msg-template ausgegeben werden.

Ich habe es eingestellt auf: msg-template='{abspath}:{line}:{column}: {msg_id} {msg}'

In den External Tools-Einstellungen kann Output filters: auf __.$FILE_PATH$:$LINE$:$COLUMN$: .*so gesetzt werden. PyCharm zeigt Links an, um direkt zu den gemeldeten Speicherorten zu springen ..__ Dies kann mit output-format=colorized kombiniert werden, sodass Folgendes angezeigt wird: enter image description here PyCharm erkennt die Spalte trotz Konfiguration nicht. Aber die Datei und die Zeile zu haben reicht mir.

5
ub_marco

Sie können dieses Pylint PyCharm Plugin ausprobieren:

 Pylint PyCharm screenshot

ermöglicht das Scannen von Python-Dateien in Echtzeit und bei Bedarf mit Pylint in PyCharm/IDEA.

Sobald Sie es installiert haben, funktioniert die Echtzeitprüfung automatisch .. Für das On-Demand-Verfahren haben Sie verschiedene Möglichkeiten, die gesamte geöffnete Datei zu prüfen, um das gesamte Projekt zu prüfen:  enter image description here

(Nur um der Transparenz willen, ich bin der Entwickler)

4

Installieren Sie zunächst pylint mit pip: 

pip install pylint

Sie müssen "Einstellungen> Tools> Externe Tools" öffnen und bei PyCharm die Taste "+" drücken. 

Hier sind ein Beispiel mit guten Einstellungen.

3
ikreb

Roberto Leinardi hat ein Pylint-Plugin für pycharm erstellt, das wirklich funktioniert und sich gut in die IDE einfügt:

Einfach aus den Repositories zu installieren, vollständige Anleitung unter: https://github.com/leinardi/pylint-pycharm

Ich habe bisher eine kurze, aber glückliche Erfahrung damit! Ein großes Lob an Roberto.

1
architectonic

Dank der hier enthaltenen Informationen und der aktualisierten Dokumentation von PyCharm konnte ich die virtuelle Umgebung auch für das Projekt nutzen, um sicherzustellen, dass Pakete innerhalb der virtuellen Umgebung bereitgestellt werden können und nicht global implementiert werden müssen ).

Nehmen Sie das, was lkraider früher bereitgestellt hat, jedoch mit geringfügigen Modifikationen:

  1. Stellen Sie sicher, dass Sie pylint in der virtuellen Umgebung installieren. Beachten Sie, dass Sie beim Erstellen der virtuellen Umgebung nicht "Globale Site-Pakete erben" ausgewählt haben. Wenn Sie dies tun, wird Pylint global sein und dies wird nicht funktionieren.

  2. Neues externes Tool hinzufügen und konfigurieren. Dies unterscheidet sich geringfügig von dem, was von lkraider bereitgestellt wurde. Zum einen wollte ich, dass es eher wie eine normale Pylint-Ausgabe aussieht, daher ist mein msg-template (und Output-Filter) etwas anders. Jede für sich ..... Die zweite Änderung ist kritischer für die Ausführung von pylint basierend auf der virtuellen Umgebung, dh dem Programmparameter, bei dem ich $ PyInterpreterDirectory $ verwende.

Program: $PyInterpreterDirectory$/pylint
Arguments: "--msg-template='{abspath}:{line:5d}:{column}: {msg_id}: {msg} ({symbol})'" --output-format=colorized "$FilePath$"
Working directory: $ProjectFileDir$
Output filters: $FILE_PATH$:\s*$LINE$\:\s*$COLUMN$:

Externes Werkzeug für Pylint

0
Erik