Come integrare pep8.py in Eclipse?


90

Un po 'di storia:

  • PEP 8 è la guida allo stile per il codice Python . Contiene le convenzioni che tutti i programmatori Python dovrebbero seguire.
  • pep8.py è uno script (molto utile) che controlla la formattazione del codice di un dato script python, secondo PEP 8.
  • Eclipse è un ottimo IDE. Con l' estensione Pydev , può essere utilizzata per sviluppare Python

Eseguo pep8.py manualmente durante lo scripting, ma con progetti più grandi preferisco usare Eclipse. Sarebbe davvero utile integrare pep8.py in Eclipse / Pydev, in modo che possa essere eseguito automaticamente in tutti i file del progetto, e puntare alle righe contenenti gli avvisi. Forse c'è un modo ovvio per farlo, ma non l'ho ancora trovato.

La domanda è: come integrare pep8.py in Eclipse?


3
Ora c'è un'integrazione predefinita di pep8. Vedi: stackoverflow.com/questions/399956/...
Fabio Zadrozny

1
Dato che la situazione è cambiata da quando hai accettato la risposta di Dmitry Kochkin , posso suggerirti di cambiare la tua risposta accettata alla risposta di Fabio Zadrozny o di angelo.bixly ? Ciò aiuterà i futuri visitatori che, come me, sono giunti a questa domanda da Google, consentendoci di trovare prima le informazioni più aggiornate, altrimenti potrebbe essere necessario molto tempo prima che queste risposte vengano portate in cima.
Mark Booth

Risposte:


88

A partire da PyDev 2.3.0, pep8è integrato in PyDev per impostazione predefinita, anche se viene fornito con una versione predefinita di esso.

Apri Finestra> Preferenze

Deve essere abilitato in PyDev> Editor> Analisi del codice> pep8.py

Errori / avvisi dovrebbero essere visualizzati come indicatori (come altre cose nella normale analisi del codice).

Nel caso in cui un file non venga analizzato, vedere https://stackoverflow.com/a/31001619/832230 .


6
Mostra molti avvisi per impostazione predefinita. Tuttavia, quando lo eseguo dalla riga di comando, mostra ancora di più. Come posso convincerlo a mostrare tutti gli avvisi in Eclipse così come vengono visualizzati quando viene eseguito dalla riga di comando? Le opzioni sono le stesse. Inoltre, il reindirizzamento dell'output di pep8 alla console non ha effetto.
Krystian Cybulski

2
PyDev sta attualmente utilizzando una versione precedente perché utilizza la sua versione interna di Jython (che è attualmente alla 2.2.1). Ci sono piani per farlo funzionare esternamente per ottenere i risultati o aggiornare il Jython interno per poter supportare le versioni più recenti di pep8.py.
Fabio Zadrozny

Apparentemente, questo non funziona con PyDev 4.2.0, nessun marker viene mai visualizzato, sia in modalità di avviso che di errore.
Luís de Sousa

1
L'ho appena testato qui e per me funziona ... nota che i tuoi sorgenti devono essere in una cartella dei sorgenti (ad esempio: in PYTHONPATH) affinché funzioni (se ancora non funziona, segnala il problema al tracker pydev ).
Fabio Zadrozny

Ha iniziato a funzionare una volta impostato in modalità Errore. C'è anche un ritardo dal momento in cui lo attivi fino a quando inizia a contrassegnare il codice.
Luís de Sousa

26

Non so come integrarlo per l'intero progetto, ma l'ho usato come strumento esterno per analizzare un singolo file.

Nota che il pycodestylepacchetto è il sostituto ufficiale ed è la versione più recente del pep8pacchetto. Per installarlo, esegui:

$ sudo pip install --upgrade pycodestyle

Successivamente, in Eclipse:

  1. Seleziona Esegui-Strumenti esterni-Configurazioni strumenti esterni ...
  2. Seleziona Programma nodo radice.
  3. Premere il pulsante Nuova configurazione di avvio .
  4. Immettere il nome per la configurazione di avvio. Io uso pycodestyle.
  5. Compila i seguenti campi:

    Posizione -${system_path:pycodestyle}

    Directory di lavoro -${container_loc}

    Argomenti : "${resource_name}"(utilizza il file attualmente attivo).

Vai alla scheda Comune e conferma che la casella di controllo Alloca Console sia selezionata.

Un vantaggio di questo approccio è che puoi usare una versione molto aggiornata del pacchetto e non sono limitati alla vecchia versione inclusa con PyDev. E se sei curioso di configurare pylintin modo simile, vedi questa risposta .


1
Se ricevi un errore La variabile fa riferimento alla selezione vuota: $ {container_loc} non dimenticare di aggiungere la tua cartella di origine a PYTHONPATH (potrebbe non esserci se importi un progetto esistente nello spazio di lavoro). Fare clic con il pulsante destro del mouse sul nome del progetto> Proprietà> PyDev - PYTHONPATH> scheda Cartelle di origine e fare clic su Aggiungi cartella di origine . Dovrebbe funzionare come un incantesimo.
berni

2
Ora c'è un'integrazione predefinita di pep8. Vedi: stackoverflow.com/a/8532188/110451
Fabio Zadrozny

1
Questo non è così utile per pep8 CHECKING, poiché è principalmente disponibile in Eclispe - ma l'ho trovato ottimo per autopep8! Grazie
tom stratton

12
  1. Apri il tuo Eclipse
  2. Vai alla Guida e seleziona Installa nuovo software
  3. Fare clic sul pulsante Aggiungi e verrà visualizzata una finestra di dialogo "Aggiungi repository"
  4. Puoi usare qualsiasi nome ti piaccia. (Ho usato PyDev)
  5. Per la posizione, inserisci "http://pydev.org/updates"
  6. Fare clic su OK.
  7. Sei ora nel processo di installazione. Aspetta solo che finisca.
  8. Dopo l'installazione, chiudi Eclipse e aprilo di nuovo.
  9. Ora che PyDev è installato nel tuo Eclipse, vai su Finestra-> Preferenze
  10. Scegli PyDev-> Editor-> Analisi del codice
  11. Vai alla scheda pep8.py
  12. Scegli il pulsante di opzione per l'avviso e fai clic su OK.

Questo è tutto. Il tuo IDE Eclipse è ora integrato con PEP8. Per eseguire automaticamente pep8.py, fai clic con il pulsante destro del mouse sull'editor del tuo progetto. Scegli PyDev e fai clic su "analisi del codice". Nella scheda dei tuoi problemi nell'area di lavoro, vedrai degli avvisi che indicano la linea che hai fatto una violazione nel PEP8 (se hai violato).


Qualcosa di molto strano, è che non importa quanto ho provato a configurare pep8, gli avvisi e gli indicatori di informazioni nell'editor non venivano visualizzati. Finché non ho aggiunto la visualizzazione "Problemi", all'improvviso ha funzionato a meraviglia ...
Agey

10

ANALISI DEL CODICE:

In Eclipse ( PyDev ), se vuoi codificare l'analisi usando lo stile pep8, allora

Vai a: Windows -> Preferenze -> PyDev -> Editor -> Analisi del codice -> scheda pep8.py e seleziona Avviso, fai clic su Applica e sul pulsante OK.

Nel tuo codice Python se convalidi lo stile di codifica pep8, riceverai un avviso

FORMATTAZIONE CODICE AUTOMATICO:

In Eclipse ( PyDev ), se vuoi formattare automaticamente il codice python usando lo stile pep8, allora

Vai a: Windows -> Preferenze -> PyDev -> Editor -> Stile codice -> Formattazione codice -> fai clic sulla casella di controllo ( Usa autopep8.py per la formattazione della console? ) Fai clic su Applica e sul pulsante OK.

Se vuoi aumentare la lunghezza della linea (l'impostazione predefinita di pep8 è 79) sotto Usa autopep8.py puoi impostare il tipo di parametro --max-line-length=150se imposti la lunghezza massima a 150

Se premi la scorciatoia di formattazione automatica ( Ctrl + Maiusc + f ) formatterà automaticamente il tuo codice python come lo stile pep8


6

Ciò non sembra ancora essere completamente integrato in Pydev.

Come suggerito in questo post ,

[esso] richiederebbe la modifica del codice all'interno di pydev - un'opzione flessibile sarebbe l'aggiunta di preferenze per consentire all'utente di scegliere a quali modelli desidera abbinare per creare collegamenti ipertestuali (e dire quale gruppo nella corrispondenza è la riga e quale è il file)...

Oppure puoi provarlo giocando con: org.python.pydev.debug.ui.PythonConsoleLineTracker (dovrebbe essere abbastanza facile da capire).

Esiste una richiesta solo per questo, ma sembra essere ancora aperta 1 anno dopo la sua creazione ...


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.