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.
Sie können pylint
für die Zusammenarbeit mit PyCharm einrichten, indem Sie die folgenden Schritte ausführen:
pylint
installieren:
$ pip install pylint
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
Ö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")
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.
Führen Sie pylint
von Tools -> External Tools -> pylint
aus:
Sehen Sie sich Ihre Ausgabe im PyCharm-Terminal an
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.
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.
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$\:.*
Führen Sie es nun über Tools -> External Tools -> PyLintPyCharm ..__ aus. Jede Ausgabezeile wird mit der entsprechenden Position im Quellcode verlinkt.
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: PyCharm erkennt die Spalte trotz Konfiguration nicht. Aber die Datei und die Zeile zu haben reicht mir.
Sie können dieses Pylint PyCharm Plugin ausprobieren:
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:
(Nur um der Transparenz willen, ich bin der Entwickler)
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.
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.
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:
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.
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$: