← Все вопросы

TabError: inconsistent use of tabs and spaces — как избавиться навсегда?

Задан 18 месяцев назад664 просмотров3 ответа
12

Код выглядит ровно, но Python ругается TabError: inconsistent use of tabs and spaces in indentation. Глазами разницы не вижу. Как найти и больше не наступать?

3 ответа

22
✓ Принятый ответ — помог автору

Проблема в том, что часть отступов сделана табами, а часть — пробелами. Внешне они выглядят одинаково, но для Python это разные символы, и смешивать их в отступах запрещено.

Что делать:

  1. Включите в редакторе отображение невидимых символов (в VS Code: View → Render Whitespace) — увидите, где таб, где пробел.
  2. Настройте редактор на «пробелы вместо табов»: в VS Code снизу справа нажмите на «Spaces/Tab», выберите Convert Indentation to Spaces, а потом включите Insert Spaces + размер 4.
  3. Стандарт PEP8 — 4 пробела на уровень, без табов.

Быстрый разовый фикс из терминала: python -m tabnanny ваш_файл.py покажет проблемные строки. После настройки редактора эта ошибка пропадает насовсем.

Данил Киселёв tabnanny реально помогает найти строку, когда глазами не видно. · 17 месяцев назад
9

В настройках редактора «Insert spaces» + размер таба 4. Потом Convert Indentation to Spaces для текущего файла.

3

Никогда не используй Tab для отступов — только пробелы.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект