Ошибки при импорте flask_security
Исходя из документации пытаюсь импортировать ряд модулей:
from flask_security import Security, SQLAlchemyUserDatastore, \
UserMixin, RoleMixin, login_required
Это рождает кучу ошибок. В коде больше ничего нет.
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_security import Security, SQLAlchemyUserDatastore, \
UserMixin, RoleMixin, login_required
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:123@localhost/flasksocial'
db = SQLAlchemy(app)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
Что устанавливалось через консоль:
- flask-security
- flask-sqlalchemy
- bcrypt
- psycopg2
IDE: pycharm (уже не знаю в чём дело)
Ошибки которые валятся:
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\flask\__main__.py", line 15, in <module>
main(as_module=True)
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\flask\cli.py", line 967, in main
cli.main(args=sys.argv[1:], prog_name="python -m flask" if as_module else None)
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\flask\cli.py", line 586, in main
return super(FlaskGroup, self).main(*args, **kwargs)
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\click\decorators.py", line 73, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\flask\cli.py", line 848, in run_command
app = DispatchingApp(info.load_app, use_eager_loading=eager_loading)
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\flask\cli.py", line 305, in __init__
self._load_unlocked()
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\flask\cli.py", line 330, in _load_unlocked
self._app = rv = self.loader()
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\flask\cli.py", line 388, in load_app
app = locate_app(self, import_name, name)
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\flask\cli.py", line 240, in locate_app
__import__(module_name)
File "C:\Users\user\PycharmProjects\clearSocial\app.py", line 3, in <module>
from flask_security import Security, SQLAlchemyUserDatastore, \
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\flask_security\__init__.py", line 13, in <module>
from .core import Security, RoleMixin, UserMixin, AnonymousUser, current_user
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\flask_security\core.py", line 28, in <module>
from .forms import ChangePasswordForm, ConfirmRegisterForm, \
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\flask_security\forms.py", line 69, in <module>
email_validator = Email(message='INVALID_EMAIL_ADDRESS')
File "C:\Users\user\PycharmProjects\clearSocial\venv\lib\site-packages\wtforms\validators.py", line 332, in __init__
raise Exception("Install 'email_validator' for email validation support.")
Exception: Install 'email_validator' for email validation support.
В интерпретаторе отображается:

Ответы (1 шт):
Как правило, в современных библиотеках и модулях в случае возникновения ошибки разработчики стараются максимально подробно описать, что именно пошло не так и даже посоветовать, что следует делать, чтобы всё заработало. Данный случай – не исключение.
Надеюсь, следующее увидят как можно больше начинающих разработчиков:
Всегда читайте тексты ошибок! Всегда! Да, они громоздкие, да, там многобукав и непонятно. На первый взгляд. А если разобраться, то всё, что непонятно, это всего лишь попытка интерпретатора указать Вам, где именно произошла ошибка. И если вложенность вызова большая (когда одна функция вызывается из другой, а из той ещё одна, а из той ещё и т.д.), то и получится вот такая простыня, как у Вас, которую все боятся читать. А теперь внимание, рабочий "секрет": ПОЛЕЗНОЕ В ТЕКСТЕ ОШИБКИ ЧАЩЕ ВСЕГО НАХОДИТСЯ В САМОМ НАЧАЛЕ ИЛИ В САМОМ КОНЦЕ. Поэтому, прежде чем идти на SO, посмотрите в начало ошибки, потом в её конец и скопируйте, наконец, в переводчик, если не знаете английского. В 90% случаев Вам уже на этом этапе станет понятно, что не так.
Теперь к сути: как и написано в тексте ошибки (в самом конце), нужно было всего лишь установить email_validator.
P.S. Простите, что так много жирным шрифтом. Хотелось бы действительно привлечь внимание начинающих в этому моменту. Если это не канон, пусть более опытные участники отредактируют это сообщение по своему усмотрению.