このページでは、Python
スクリプト実行時に発生する下記の TabError
の原因と解決法について解説していきます。
TabError: inconsistent use of tabs and spaces in indentation
この TabError
は VSCode
を使えば一瞬で解決することも可能です!
Contents
原因
このエラーの原因は、インデント(字下げ)に下記の2つのものが混在していることです(表示されている英文を訳せばすぐ分かるのですが)。
- タブ
- スペース
要は、インデントが下の図のような状態になってしまっているということです。
Python
では、1つのファイル内ではインデントを「タブ or スペース」のどちらか一方に統一させなければいけないのです。混在すると TabError
が発生します。
このエラーが一番発生しやすいのは「スクリプトのコピペ時」です。
例えば、ウェブページで公開されているスクリプトを自身のスクリプトにコピペしてきた時、ウェブページのスクリプトのインデントが「スペース」で、自身のスクリプトのインデントが「タブ」であれば、インデントにタブとスペースが混在することになって、この TabError
が発生します。
解決法
エラーの原因が「インデントがタブとスペースとで混在していること」なので、インデントをタブ or スペースに統一してやれば解決します。
地道に1行1行インデントを修正してやっても良いですし、文字列置換でタブをスペース or スペースをタブに一括で置換してやっても良いです。
スポンサーリンク
VSCode
なら一瞬で解決可能
まぁでも、スクリプトの行数が多い場合、1行1行修正するのは面倒ですよね…。そもそもタブとスペースの違いが視覚的に分からないような環境もあります。
置換するのもちょっと手間ですね…。
そんな時におすすめしたいのが VSCode(Visual Studio Code)
です。このテキストエディタを使えば、タブとスペースの混在を一瞬で解決できます。
VSCode
では、下の画像のように、画面下部に青色のバーがあり(もしかしたら色が違う場合もあるかも)、
そのバーの右下側に、下図のような スペース:4
or タブ:4
というボタンがあります(数字はインデントの文字数によって異なります)。
これをクリックすれば、下図のような選択肢が表示されます。
さらに、この選択肢の中の インデントをタブに変換
をクリックすれば、ファイル内のインデントが全てタブに統一されます。また、インデントをスペースに変換
をクリックすれば、ファイル内のインデントが全てスペースに統一されます。
つまり、これだけの操作でインデントとタブの混在を修正し、下記の TabError
が解決されることになります。
TabError: inconsistent use of tabs and spaces in indentation
私も毎日のようにこのエラーを発生させていますが、上記の簡単な手順でエラーが解決できるため、正直全く煩わしさはないですね!
TabError
が発生して、また「このエラーか…」と嫌気が指すようであれば、この VSCode
を使ってみることをオススメします!
下記ページで解説しているように、VSCode
にプラグインを導入すればスクリプトを1行1行停止しながら動作させることができますので、デバッグなども簡単になります!無料なので、入れておいて損はないかと思います!
下記ページで VSCode
のインストール方法等を解説していますので、是非参考にしてください。
まとめ
このページでは、Python
スクリプト実行時に発生する下記の TabError
の原因と解決法について解説しました!
TabError: inconsistent use of tabs and spaces in indentation
エラーの原因は「インデントがタブとスペースとで混在していること」であり、解決法は「インデントをタブ or スペースのどちらか一方に統一すること」となります。
VSCode
を利用すれば一瞬で解決できるので、このエラーが良く発生する場合は導入してみることをオススメします!
プログラミングを始めたばかりだと、こういったエラーが出るたびに挫折しそうになってしまうかもしれません…。
ですが、今回紹介した VSCode
などの開発ツールを利用すればエラーが解決しやすくなりますし、エラーを未然に防ぐようなことも可能です。ですので、エラーに疲れてきた時にはこういったツールの導入も考えてみると良いと思います!