

FlaskとFlask-wtfを使って、簡易的なログインフォームを作ろうとしているとき、

[code]

    confirm_password = Password('Password', validators=[DataRequired(),EqualTo('')])
                                                                                       ^
    TabError: inconsistent use of tabs and spaces in indentation
    
[/code]

というようなエラーが発生しました。

タブとインデントによるエラーということは、理解できるのですが何度修正してもこのようなエラ  
ーが発生してしまいます。

どうすれば、解決できるでしょうか。誰かご回答をお願いします。  
以下、エラーが発生したコードです。

[code]

    
    from flask_wtf import FlaskForm
    from wtforms import StringField, PasswordField,SubmitField,BooleanField
    from wtforms.validators import DataRequired,Length,Email
    
    class RegistrationForm(FlaskForm):
        username = StringField('username',validators=[DataRequired(),Length(min=2,max=20)])
    
        email = StringField('Email',validators=[DataRequired(),Email()])
    
        password = PasswordField('Password', validators=[DataRequired()])
    
        confirm_password = Password('Password', validators=[DataRequired(),EqualTo('')])
    
        submit = SubmitField('Sign Up')
    
    class LoginForm(FlaskForm):
        email = StringField('Email',validators=[DataRequired(),Email()])
    
        password = PasswordField('password',validators=[DataRequired()])
    
        remember = BooleanField('Remember Me')
    
        submit = SubmitField('Login')   
    
    
    
[/code]


CC BY-SA 4.0
2019-02-09T03:06:56.587
52654
2019-07-12T16:02:50.350
2019-02-09T03:20:39.213
3060
32071
question
python flask
TabError: inconsistent use of tabs and spaces in indentation


## TabErrorについて

> TabError  
>  タブとスペースを一貫しない方法でインデントに使っているときに送出されます。  
>  <https://docs.python.jp/3/library/exceptions.html#TabError>

という通り、コードの中にタブとスペースの両方を使ってインデントしてる場合に発生します。

しかし、貼り付けられたソースコードを見る限りタブは存在しないようです（Stack Overflowの問題？）。

## 解決策

  * タブとスペースを混在して書いた、またはコピペしていた場合 
    * `confirm_password` の部分に混在しているので、確認して取り除く
  * 混在している様子が無い場合 
    * エディタの機能が悪さをしている可能性があります。別のエディタを利用して試してみてください。
    * `cat -e file | less` などすると、タブを空白ではなく文字として表示することができ、確認が可能になります。


CC BY-SA 4.0
2019-02-09T03:26:06.267
52655
2019-02-09T03:26:06.267
29826
52654
answer