¿Cómo integrar pep8.py en Eclipse?

90

Un poco de historia:

  • PEP 8 es la guía de estilo para código Python . Contiene las convenciones que deben seguir todos los programadores de Python.
  • pep8.py es un script (muy útil) que comprueba el formato del código de un script de Python determinado, según PEP 8.
  • Eclipse es un gran IDE. Con la extensión Pydev , se puede usar para desarrollar Python

Ejecuto pep8.py manualmente cuando estoy escribiendo un script, pero con proyectos más grandes prefiero usar Eclipse. Sería realmente útil integrar pep8.py en Eclipse / Pydev, para que pueda ejecutarse automáticamente en todos los archivos del proyecto y señalar las líneas que contienen las advertencias. Tal vez haya una forma obvia de hacerlo, pero aún no la he encontrado.

La pregunta es: ¿Cómo integrar pep8.py en Eclipse?

David Arcos
fuente
3
Ahora hay una integración pep8 predeterminada. Ver: stackoverflow.com/questions/399956/…
Fabio Zadrozny
1
Dado que la situación ha cambiado desde que aceptó la respuesta de Dmitry Kochkin , ¿podría sugerirle que cambie su respuesta aceptada por la respuesta de Fabio Zadrozny o la de angelo.bixly ? Esto ayudará a los futuros visitantes que, como yo, llegaron a esta pregunta de Google, permitiéndonos encontrar primero la información más actualizada; de lo contrario, puede llevar mucho tiempo que estas respuestas lleguen a la cima.
Mark Booth

Respuestas:

88

A partir de PyDev 2.3.0, pep8está integrado en PyDev de forma predeterminada, incluso se envía con una versión predeterminada.

Ventana abierta> Preferencias

Debe estar habilitado en PyDev> Editor> Análisis de código> pep8.py

Los errores / advertencias deben mostrarse como marcadores (como otras cosas en el análisis de código regular).

En caso de que no se analice un archivo, consulte https://stackoverflow.com/a/31001619/832230 .

Fabio Zadrozny
fuente
6
Muestra muchas advertencias por defecto. Sin embargo, cuando lo ejecuto desde la línea de comandos, muestra aún más. ¿Cómo puedo convencerlo de que muestre todas las advertencias en Eclipse como se muestra cuando se ejecuta desde la línea de comandos? Las opciones son las mismas. Además, redirigir la salida de pep8 a la consola no hace nada.
Krystian Cybulski
2
PyDev está usando actualmente una versión anterior porque usa su versión interna de Jython (que actualmente está en 2.2.1). Hay planes para ejecutarlo externamente para obtener los resultados o actualizar el Jython interno para poder admitir versiones más nuevas de pep8.py.
Fabio Zadrozny
Aparentemente, esto no funciona con PyDev 4.2.0, nunca se muestran marcadores, ya sea en modo Advertencia o Error.
Luís de Sousa
1
Solo lo probé aquí y me funciona ... tenga en cuenta que sus fuentes deben estar en una carpeta de origen (es decir, en PYTHONPATH) para que funcione (si aún no funciona, informe el problema en el rastreador de pydev ).
Fabio Zadrozny
Comenzó a funcionar una vez que lo configuré en modo Error. También hay un retraso desde el momento en que lo activa hasta que comienza a marcar el código.
Luís de Sousa
26

No sé cómo integrarlo para todo el proyecto, pero lo he usado como una herramienta externa para analizar un archivo individual.

Tenga en cuenta que el pycodestylepaquete es el reemplazo oficial y es la versión más nueva del pep8paquete. Para instalarlo, ejecute:

$ sudo pip install --upgrade pycodestyle

A continuación, en Eclipse:

  1. Seleccione Ejecutar-Herramientas externas-Configuraciones de herramientas externas ...
  2. Seleccione el nodo raíz del programa .
  3. Presione el botón Nueva configuración de lanzamiento .
  4. Ingrese el nombre para su configuración de lanzamiento. Yo uso pycodestyle.
  5. Complete los siguientes campos:

    Ubicación -${system_path:pycodestyle}

    Directorio de trabajo -${container_loc}

    Argumentos : "${resource_name}"(esto usa el archivo actualmente activo).

Vaya a la pestaña Común y confirme que la casilla de verificación Asignar consola esté marcada.

Una ventaja de este enfoque es que puede usar una versión muy actualizada del paquete y no está limitado a la versión anterior incluida con PyDev. Y si tiene curiosidad por configurar de pylintmanera similar, consulte esta respuesta .

Dmitry Kochkin
fuente
1
Si recibe un error La selección de referencias de variables está vacía: $ {container_loc} no olvide agregar su carpeta de origen a PYTHONPATH (es posible que no esté allí si importa un proyecto existente en el espacio de trabajo). Haga clic con el botón derecho en el nombre del proyecto> Propiedades> PyDev - PYTHONPATH> pestaña Carpetas de origen y haga clic en Agregar carpeta de origen . Debería estar funcionando como un encanto.
berni
2
Ahora hay una integración pep8 predeterminada. Ver: stackoverflow.com/a/8532188/110451
Fabio Zadrozny
1
Esto no es tan útil para pep8 CHECKING, ya que está disponible principalmente en Eclispe, ¡pero lo encontré genial para autopep8! Gracias
tom stratton
12
  1. Abre tu Eclipse
  2. Vaya a Ayuda y seleccione Instalar nuevo software
  3. Haga clic en el botón Agregar y aparecerá un cuadro de diálogo "Agregar repositorio".
  4. Puede usar el nombre que desee. (Usé PyDev)
  5. Para la ubicación, ingrese "http://pydev.org/updates"
  6. Haga clic en Aceptar.
  7. Ahora está en el proceso de instalación. Solo espera a que termine.
  8. Después de la instalación, cierre Eclipse y ábralo de nuevo.
  9. Ahora que PyDev está instalado en su Eclipse, vaya a Ventana-> Preferencias
  10. Elija PyDev-> Editor-> Análisis de código
  11. Ir a la pestaña pep8.py
  12. Elija el botón de radio de advertencia y haga clic en Aceptar.

Eso es. Su Eclipse IDE ahora está integrado con PEP8. Para ejecutar pep8.py automáticamente, haga clic derecho en el editor de su proyecto. Elija PyDev y haga clic en "análisis de código". En la pestaña de problemas en su espacio de trabajo, verá advertencias que apuntan a la línea de que ha cometido una infracción en el PEP8 (si ha infringido).

Increíble angelo
fuente
Algo muy extraño, es que no importa cuánto intenté configurar pep8, las advertencias y los marcadores de información en el editor no aparecieron. Eso es hasta que agregué la vista "Problemas", luego de repente funcionó como un encanto ...
Agey
10

ANÁLISIS DE CÓDIGO:

En Eclipse ( PyDev ), si desea codificar el análisis usando el estilo pep8, entonces

Vaya a: Windows -> Preferencias -> PyDev -> Editor -> Análisis de código -> pestaña pep8.py y seleccione Advertencia, haga clic en Aplicar y Aceptar.

En su código de Python, si valida el estilo de codificación pep8, le dará una advertencia

FORMATO DE CÓDIGO AUTOMÁTICO:

En Eclipse ( PyDev ), si desea formatear automáticamente el código Python usando el estilo pep8, entonces

Vaya a: Windows -> Preferencias -> PyDev -> Editor -> Estilo de código -> Formateador de código -> haga clic en la casilla de verificación (¿ Usar autopep8.py para formatear la consola? ) Haga clic en Aplicar y en el botón Aceptar.

Si desea aumentar la longitud de la línea (pep8 el valor predeterminado es 79) a continuación, use autopep8.py, puede establecer el tipo de parámetro --max-line-length=150si establece la longitud máxima en 150

Si presiona el acceso directo de formato automático ( Ctrl + Shift + f ), formateará automáticamente su código de Python como el estilo pep8

Sagar Pise
fuente
6

Eso todavía no parece estar completamente integrado en Pydev.

Como se sugiere en esta publicación ,

[esto] requeriría cambiar el código dentro de pydev - una opción flexible sería agregar preferencias para permitir que el usuario elija con qué patrones quiere hacer coincidir para crear hipervínculos (y decir qué grupo en la coincidencia es la línea y cuál es el expediente)...

O puedes probarlo de forma rígida jugando con: org.python.pydev.debug.ui.PythonConsoleLineTracker (debería ser bastante fácil de entender).

Existe una solicitud solo para eso, pero parece estar todavía abierta 1 año después de su creación ...

VonC
fuente