← Все вопросы
TabError: inconsistent use of tabs and spaces — как избавиться навсегда?
12
Код выглядит ровно, но Python ругается TabError: inconsistent use of tabs and spaces in indentation. Глазами разницы не вижу. Как найти и больше не наступать?
3 ответа
22
✓ Принятый ответ — помог автору
Проблема в том, что часть отступов сделана табами, а часть — пробелами. Внешне они выглядят одинаково, но для Python это разные символы, и смешивать их в отступах запрещено.
Что делать:
- Включите в редакторе отображение невидимых символов (в VS Code: View → Render Whitespace) — увидите, где таб, где пробел.
- Настройте редактор на «пробелы вместо табов»: в VS Code снизу справа нажмите на «Spaces/Tab», выберите Convert Indentation to Spaces, а потом включите Insert Spaces + размер 4.
- Стандарт PEP8 — 4 пробела на уровень, без табов.
Быстрый разовый фикс из терминала: python -m tabnanny ваш_файл.py покажет проблемные строки. После настройки редактора эта ошибка пропадает насовсем.
Данил Киселёв tabnanny реально помогает найти строку, когда глазами не видно. · 17 месяцев назад
9
В настройках редактора «Insert spaces» + размер таба 4. Потом Convert Indentation to Spaces для текущего файла.
3
Никогда не используй Tab для отступов — только пробелы.
Ваш ответ
Войдите, чтобы ответить на вопрос.