Wie integriere ich pep8.py in Eclipse?

90

Ein kleiner Hintergrund:

  • PEP 8 ist der Style Guide für Python-Code . Es enthält die Konventionen, die alle Python-Programmierer befolgen sollten.
  • pep8.py ist ein (sehr nützliches) Skript, das die Code-Formatierung eines bestimmten Python-Skripts gemäß PEP 8 überprüft.
  • Eclipse ist eine großartige IDE. Mit der Pydev- Erweiterung kann damit Python entwickelt werden

Ich führe pep8.py manuell aus, wenn ich Skripte schreibe, aber bei größeren Projekten bevorzuge ich die Verwendung von Eclipse. Es wäre sehr nützlich, pep8.py in Eclipse / Pydev zu integrieren, damit es automatisch in allen Dateien im Projekt ausgeführt werden kann und auf die Zeilen zeigt, die die Warnungen enthalten. Vielleicht gibt es einen offensichtlichen Weg, aber ich habe ihn noch nicht gefunden.

Die Frage ist: Wie kann man pep8.py in Eclipse integrieren?

David Arcos
quelle
3
Es gibt jetzt eine Standard-pep8-Integration. Siehe: stackoverflow.com/questions/399956/…
Fabio Zadrozny
1
Angesichts der Tatsache, dass sich die Situation geändert hat, seit Sie die Antwort von Dmitry Kochkin akzeptiert haben, kann ich vorschlagen, dass Sie Ihre akzeptierte Antwort entweder in die Antwort von Fabio Zadrozny oder in die Antwort von angelo.bixly ändern ? Dies hilft zukünftigen Besuchern, die wie ich zu dieser Frage von Google gekommen sind, und ermöglicht es uns, zuerst die aktuellsten Informationen zu finden. Andernfalls kann es lange dauern, bis diese Antworten an die Spitze gelangen.
Mark Booth

Antworten:

88

Ab PyDev 2.3.0 pep8ist es standardmäßig in PyDev integriert, auch wenn es mit einer Standardversion geliefert wird.

Öffnen Sie Fenster> Einstellungen

Es muss in PyDev> Editor> Code-Analyse> pep8.py aktiviert sein

Fehler / Warnungen sollten als Markierungen angezeigt werden (wie andere Dinge in der regulären Code-Analyse).

Falls eine Datei nicht analysiert wird, lesen Sie https://stackoverflow.com/a/31001619/832230 .

Fabio Zadrozny
quelle
6
Standardmäßig werden viele Warnungen angezeigt. Wenn ich es jedoch über die Befehlszeile ausführe, wird noch mehr angezeigt. Wie kann ich es davon überzeugen, alle Warnungen in Eclipse anzuzeigen, wie sie angezeigt werden, wenn sie über die Befehlszeile ausgeführt werden? Optionen sind die gleichen. Das Umleiten der pep8-Ausgabe an die Konsole führt ebenfalls zu nichts.
Krystian Cybulski
2
PyDev verwendet derzeit eine ältere Version, da die interne Jython-Version (derzeit 2.2.1) verwendet wird. Es ist geplant, es entweder extern auszuführen, um die Ergebnisse zu erhalten, oder das interne Jython zu aktualisieren, um neuere Versionen von pep8.py unterstützen zu können.
Fabio Zadrozny
Anscheinend funktioniert dies mit PyDev 4.2.0 nicht. Es werden niemals Markierungen angezeigt, weder im Warn- noch im Fehlermodus.
Luís de Sousa
1
Habe es gerade hier getestet und es funktioniert für mich ... Beachten Sie, dass sich Ihre Quellen in einem Quellordner befinden müssen (dh im PYTHONPATH), damit es funktioniert (falls dies immer noch nicht der Fall ist, melden Sie das Problem bitte im Pydev-Tracker ).
Fabio Zadrozny
Es fing an zu funktionieren, als ich es in den Fehlermodus versetzte. Es gibt auch eine Verzögerung von dem Moment an, in dem Sie es aktivieren, bis es beginnt, den Code zu markieren.
Luís de Sousa
26

Ich weiß nicht, wie ich es für das gesamte Projekt integrieren soll, aber ich habe es als externes Tool zum Analysieren einer einzelnen Datei verwendet.

Beachten Sie, dass das pycodestylePaket der offizielle Ersatz für und die neuere Version des pep8Pakets ist. Führen Sie zum Installieren Folgendes aus:

$ sudo pip install --upgrade pycodestyle

Als nächstes in Eclipse:

  1. Wählen Sie Run-External Tools-External Tools Configurations ...
  2. Wählen Sie Programmstammknoten .
  3. Presse Neue Startkonfiguration Taste.
  4. Geben Sie den Namen für Ihre Startkonfiguration ein. Ich benutze pycodestyle.
  5. Füllen Sie folgende Felder aus:

    Lage -${system_path:pycodestyle}

    Arbeitsverzeichnis -${container_loc}

    Argumente - "${resource_name}"(Hiermit wird die aktuell aktive Datei verwendet.)

Wechseln Sie zur Registerkarte Allgemein, und bestätigen Sie, dass das Kontrollkästchen Konsole zuweisen aktiviert ist.

Ein Vorteil dieses Ansatzes besteht darin, dass Sie eine sehr aktuelle Version des Pakets verwenden können und nicht auf die alte Version beschränkt sind, die in PyDev enthalten ist. Und wenn Sie neugierig sind, sich pylintauf ähnliche Weise einzurichten , lesen Sie diese Antwort .

Dmitry Kochkin
quelle
1
Wenn Sie eine Fehlermeldung erhalten Variablenreferenzen leere Auswahl: $ {container_loc} Vergessen Sie nicht, Ihren Quellordner zu PYTHONPATH hinzuzufügen (möglicherweise nicht vorhanden, wenn Sie ein vorhandenes Projekt in den Arbeitsbereich importieren). Klicken Sie mit der rechten Maustaste auf Projektname> Eigenschaften> PyDev - PYTHONPATH> Registerkarte Quellordner und klicken Sie auf Quellordner hinzufügen . Sollte wie ein Zauber wirken.
Berni
2
Es gibt jetzt eine Standard-pep8-Integration. Siehe: stackoverflow.com/a/8532188/110451
Fabio Zadrozny
1
Dies ist für pep8 CHECKING nicht so nützlich, da dies meistens in Eclispe verfügbar ist - aber ich fand es großartig für autopep8! Vielen Dank
Tom Stratton
12
  1. Öffne deine Eclipse
  2. Gehen Sie zur Hilfe und wählen Sie Neue Software installieren
  3. Klicken Sie auf die Schaltfläche Hinzufügen. Das Dialogfeld "Repository hinzufügen" wird angezeigt
  4. Sie können einen beliebigen Namen dafür verwenden. (Ich habe PyDev benutzt)
  5. Geben Sie als Speicherort "http://pydev.org/updates" ein.
  6. OK klicken.
  7. Sie befinden sich derzeit in der Installation. Warten Sie einfach, bis es fertig ist.
  8. Schließen Sie nach der Installation Eclipse und öffnen Sie es erneut.
  9. Nachdem PyDev in Ihrer Eclipse installiert ist, gehen Sie zu Fenster-> Einstellungen
  10. Wählen Sie PyDev-> Editor-> Code-Analyse
  11. Gehen Sie zur Registerkarte pep8.py
  12. Aktivieren Sie das Optionsfeld zur Warnung und klicken Sie auf OK.

Das ist es. Ihre Eclipse-IDE ist jetzt in PEP8 integriert. Um pep8.py automatisch auszuführen, klicken Sie mit der rechten Maustaste auf Ihren Projekteditor. Wählen Sie PyDev und klicken Sie auf "Code-Analyse". Auf der Registerkarte "Probleme" in Ihrem Arbeitsbereich werden Warnungen angezeigt, die auf die Zeile verweisen, in der Sie im PEP8 einen Verstoß begangen haben (falls Sie einen Verstoß begangen haben).

Erstaunlicher Angelo
quelle
Etwas sehr Seltsames ist, dass die Warnungen und Infomarker im Editor nicht angezeigt wurden, egal wie sehr ich versucht habe, pep8 zu konfigurieren. Bis ich die Ansicht "Probleme" hinzugefügt habe, hat es plötzlich wie ein Zauber funktioniert ...
Agey
10

CODE-ANALYSE:

Wenn Sie in Eclipse ( PyDev ) die Analyse im pep8-Stil codieren möchten, dann

Gehen Sie zu: Windows -> Einstellungen -> PyDev -> Editor -> Codeanalyse -> Registerkarte pep8.py und wählen Sie Warnung. Klicken Sie auf Übernehmen und auf OK.

Wenn Sie in Ihrem Python-Code den pep8-Codierungsstil überprüfen, erhalten Sie eine Warnung

AUTO CODE FORMATIEREN:

In Eclipse ( PyDev ), wenn Sie wollen, Auto Format Python - Code mit PEP8 Stil dann

Gehen Sie zu: Windows -> Einstellungen -> PyDev -> Editor -> Codestil -> Code-Formatierer -> Aktivieren Sie das Kontrollkästchen ( Verwenden Sie autopep8.py für die Konsolenformatierung? ). Klicken Sie auf Übernehmen und auf OK.

Wenn Sie die Länge der Zeile erhöhen möchten (pep8 ist standardmäßig 79), verwenden Sie autopep8.py. Sie können den Parametertyp festlegen, --max-line-length=150wenn Sie die maximale Länge auf 150 festlegen

Wenn Sie die Verknüpfung zum automatischen Formatieren ( Strg + Umschalt + f ) drücken, wird Ihr Python-Code automatisch wie im pep8-Stil formatiert

Sagar Pise
quelle
6

Das scheint noch nicht vollständig in Pydev integriert zu sein.

Wie in diesem Beitrag vorgeschlagen ,

[it] würde das Ändern des Codes in pydev erfordern - eine flexible Option wäre das Hinzufügen von Einstellungen, damit der Benutzer auswählen kann, mit welchen Mustern er zum Erstellen von Hyperlinks übereinstimmen möchte (und zu sagen, welche Gruppe in der Übereinstimmung die Zeile und welche die ist Datei)...

Oder Sie können versuchen, hartcodiert zu spielen mit: org.python.pydev.debug.ui.PythonConsoleLineTracker (sollte ziemlich einfach zu verstehen sein).

Genau dafür gibt es eine Anfrage , die jedoch 1 Jahr nach ihrer Erstellung noch offen zu sein scheint ...

VonC
quelle