【Python】TabError: inconsistent use of tabs and spaces in indentation の原因と一瞬で解決する方法

TabError: inconsistent use of tabs and spaces in indentation の原因と解決法の解説ページアイキャッチ

このページにはプロモーションが含まれています

このページでは、Python スクリプト実行時に発生する下記の TabError の原因と解決法について解説していきます。

TabError: inconsistent use of tabs and spaces in indentation

この TabErrorVSCode を使えば一瞬で解決することも可能です!

原因

このエラーの原因は、インデント(字下げ)に下記の2つのものが混在していることです(表示されている英文を訳せばすぐ分かるのですが)。

  • タブ
  • スペース

要は、インデントが下の図のような状態になってしまっているということです。

TabErrorが発生するときのインデントの様子

Python では、1つのファイル内ではインデントを「タブ or スペース」のどちらか一方に統一させなければいけないのです。混在すると TabError が発生します。

このエラーが一番発生しやすいのは「スクリプトのコピペ時」です。

例えば、ウェブページで公開されているスクリプトを自身のスクリプトにコピペしてきた時、ウェブページのスクリプトのインデントが「スペース」で、自身のスクリプトのインデントが「タブ」であれば、インデントにタブとスペースが混在することになって、この TabError が発生します。

解決法

エラーの原因が「インデントがタブとスペースとで混在していること」なので、インデントをタブ or スペースに統一してやれば解決します。

地道に1行1行インデントを修正してやっても良いですし、文字列置換でタブをスペース or スペースをタブに一括で置換してやっても良いです。

スポンサーリンク

VSCode なら一瞬で解決可能

まぁでも、スクリプトの行数が多い場合、1行1行修正するのは面倒ですよね…。そもそもタブとスペースの違いが視覚的に分からないような環境もあります。

置換するのもちょっと手間ですね…。

そんな時におすすめしたいのが VSCode(Visual Studio Code)です。このテキストエディタを使えば、タブとスペースの混在を一瞬で解決できます。

VSCode では、下の画像のように、画面下部に青色のバーがあり(もしかしたら色が違う場合もあるかも)、

VSCodeでTabErrorを解消する手順1

そのバーの右下側に、下図のような スペース:4 or タブ:4 というボタンがあります(数字はインデントの文字数によって異なります)。

VSCodeでTabErrorを解消する手順2

これをクリックすれば、下図のような選択肢が表示されます。

VSCodeでTabErrorを解消する手順3

さらに、この選択肢の中の インデントをタブに変換 をクリックすれば、ファイル内のインデントが全てタブに統一されます。また、インデントをスペースに変換 をクリックすれば、ファイル内のインデントが全てスペースに統一されます。

VSCodeでTabErrorを解消する手順4

つまり、これだけの操作でインデントとタブの混在を修正し、下記の TabError が解決されることになります。

TabError: inconsistent use of tabs and spaces in indentation

私も毎日のようにこのエラーを発生させていますが、上記の簡単な手順でエラーが解決できるため、正直全く煩わしさはないですね!

TabError が発生して、また「このエラーか…」と嫌気が指すようであれば、この VSCode を使ってみることをオススメします!

下記ページで解説しているように、VSCode にプラグインを導入すればスクリプトを1行1行停止しながら動作させることができますので、デバッグなども簡単になります!無料なので、入れておいて損はないかと思います!

下記ページで VSCode のインストール方法等を解説していますので、是非参考にしてください。

Visual Studio Code で Mac に Python 開発環境を整える

まとめ

このページでは、Python スクリプト実行時に発生する下記の TabError の原因と解決法について解説しました!

TabError: inconsistent use of tabs and spaces in indentation

エラーの原因は「インデントがタブとスペースとで混在していること」であり、解決法は「インデントをタブ or スペースのどちらか一方に統一すること」となります。

VSCode を利用すれば一瞬で解決できるので、このエラーが良く発生する場合は導入してみることをオススメします!

プログラミングを始めたばかりだと、こういったエラーが出るたびに挫折しそうになってしまうかもしれません…。

ですが、今回紹介した VSCode などの開発ツールを利用すればエラーが解決しやすくなりますし、エラーを未然に防ぐようなことも可能です。ですので、エラーに疲れてきた時にはこういったツールの導入も考えてみると良いと思います!

同じカテゴリのページ一覧を表示