python

Solución a “TabError: inconsistent use of tabs and spaces in indentation” en Python

Una de las cosas más molestas (pero gracias a la misma tenemos tantos memes de Python) de Python es el error de:

TabError: inconsistent use of tabs and spaces in indentation

No podemos poner una  tabulación extra, o una tabulación menos, porque el intérprete se está quejando.

Una posible explicación a esto es que copiamos y pegamos código de otro lugar en donde se usan espacios o tabulaciones intercambiadas o en un número distinto.

Esto no pasa con otro lenguaje, que yo sepa; pero bueno, vamos a ver dos soluciones para que ya no se genere este error y Python nos deje seguir programando.

Buscar y remplazar

Nota: abajo expongo otra solución con un comando, el cual además podrá formatear nuestro código.

Para esto necesitas un editor (y si no, en qué programas? en la calculadora de Windows?) decente que pueda buscar y remplazar; un IDE también funciona bien.

En pocas palabras tienes que buscar todas las tabulaciones, para ello, en la búsqueda activa la búsqueda por expresión regular y coloca \t en el cuadro.

El remplazo será cuatro espacios por tabulación, así que en el cuadro de remplazo coloca “    “.

Nota: esto lo tienes que hacer con todos los archivos, muchos editores ya tienen la opción de “Remplazar en archivos”

Yo lo haré con VSCode así que voy a Edit > Replace in files, busco, pongo el remplazo, presiono Enter y se muestran los archivos que coinciden:

Remplazar tabulación por 4 espacios

Fíjate que está activa la opción de expresión regular en donde está el .*.

Después hay que confirmar:

Confirmar remplazo

Y el error de TabError ya no existe:

Solucionado el TabError

Solución con autopep8

Un ejecutable que permite arreglar este tipo de errores y además formatear nuestro código es autopep8.

Para instalarlo debes tener Python y PIP, y luego ejecutar:

pip install autopep8

Cuando se haya instalado, el ejecutable autopep8 estará disponible.

Para formatear un archivo simplemente ejecuta:

autopep8 -i nombre_archivo.py

La opción -i es para que modifique el archivo directamente.

Formatear archivo de Python con autopep8

La documentación de autopep8 está aquí.

Tip: para arreglar el error en todos los archivos ejecuta:

autopep8 -i -r . (o autopep8 -ir .)

La opción -i es para que modifique el archivo, y la opción -r para que sea recursivo. El punto al final indica el directorio actual 😉

Si tú usas Visual Studio Code

Finalmente, si tú usas VSCode y te da este error puedes presionar F1 o Ctrl + Shift + p y buscar “Convert indentation” (O convertir sangría si lo tienes en español).

Eso te dará dos resultados: convertir indentación a tabulaciones, o espacios. Elige la que más te convenga, yo siempre elijo los espacios.

Y así no necesitarás ningún comando extra; solo tu editor.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.