leanmind logo leanmind text logo

Blog

Código Sostenible

Cómo escribir código fácil de mantener mediante valores, principios y técnicas.

Cómo configurar linter y formatter de Python en VSCode

Por Ana Cáceres

Cuando comenzamos en un proyecto de Python, sin mucho conocimiento de cómo configurar el entorno, puede ser frustrante. Hacía bastantes años que no programaba con él, y configurar el entorno en VSCode, me ha llevado más de un dolor de cabeza, al intentar entender las diferencias entre los linters, formatters y virtual envs que hay disponibles para desarrollar de manera más eficiente.

En este artículo, atacaré como configurar pycodestyle(linter) y autopep8(formatter), para que se ejecuten al guardar los archivos. Aunque VSCode te da la opción de configurar otros diferentes, para nuestro proyecto concluimos que estos dos serían la mejor opción.

Si en tu caso estás buscando cómo configurarlos para PyCharm, te dejo este artículo que lo explica.

Es importante entender qué beneficios trae configurar estas dos herramientas:

Ahora, comencemos a configurar 👷🏻‍♀️ 🔨 Para poder configurar nuestro editor, es muy importante que tengamos primero instalada la extensión de Python. Una vez tenemos esto, existen dos maneras en las que podemos configurar el editor:

  1. Directamente desde el fichero .vscode/settings.json:

    {
        # Especifica que el linter de código sea pycodestyle
      "python.linting.pycodestyleEnabled": true,
        # Especifica que el linter de la documentación sea pydocstyle
      "python.linting.pydocstyleEnabled": true,
        # Activa el lintado
      "python.linting.enabled": true,
        # Especifica que el formatter sea autopep8
      "python.formatting.provider": "autopep8",
        # Especifica que se pase el autopep8 al guardar
      "editor.formatOnSave": true,
        # Define los argumentos con los que se ejecuta el formateo
        # En este caso define la agresividad del mismo
      "python.formatting.autopep8Args": [
        "--aggressive",
        "--aggressive"
      ]
    }
    
  2. Desde los settings:

    Abrimos la configuración de nuestro VSCode.

    configuración vscode

    En el buscador de la pestaña que se nos abre buscamos Python:

    Buscar la palabra python en el buscador

    Una vez clicamos en la extensión, buscamos el linter y formatter que queremos habilitar:

    1. Activar el lintado

      Marcar el lintado
    2. Añadimos los argumentos de autopep8

      Añadir los argumentos de autopep8
    3. Especificamos el formatter a autopep8

      Especificar el formatter a autopep8
    4. Activamos el formateo al guardar

      Marcar opción formateo al guardar
    5. Activamos el lintado con pycodestyle

      Marcar la opción del lintado con pycodestyle
    6. Activamos el lintado con pydocstyle

      Marcar la opción del lintado con pydocstyle

Cuando habilitemos autopep8, pydocstyle y pycodestyle, si no los tenemos instalados nos pedirá instalarlos y tenemos que aceptar.

Ahora, cada vez que guardemos un archivo, se pasará el linter y el formatter que hemos configurado. Sin embargo, si queremos pasar estas herramientas antes del guardado, habrá que hacer Cmd+Shift+P/Ctrl+Shift+P para que salga el Command Palette y buscamos la de Python: Run Linting o Format Document. Si pulsamos enter en cualquiera de ellos realizaremos la acción deseada.

acceder al Command Palette de vscode

Con todo esto, ya tendríamos todo configurado para poder ejecutar el linter y formatter, tanto en guardado como de forma manual. Estos pasos, se podrían seguir con cualquier otro de los linter/formatter que vienen como opción en la extensión de Python para VSCode si tenemos otra preferencia.

Muchas gracias por leer, espero que os haya sido útil 🤗

Publicado el 18/10/2022 por

¿Quieres más? te invitamos a suscribirte a nuestro boletín para avisarte cada vez que recopilemos contenido de calidad que compartir.

Si disfrutas leyendo nuestro blog, ¿imaginas lo divertido que sería trabajar con nosotros? ¿te gustaría?

Impulsamos el crecimiento profesional de tu equipo de developers