Obtención de una excepción al ejecutar el siguiente código para la validación del formulario.
File "/Users/homeduvvuri/Documents/Learning/PartyGoUdemy/PartGo/user/forms.py", line 11, in BaseUserForm email = EmailField('Email', [validators.DataRequired(), validators.Email()]) File "/Users/homeduvvuri/Documents/Learning/PartyGoUdemy/PartGo/partgo-env/lib/python3.7/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.Funciona perfectamente en codeanywhere VM. No en la máquina local.
from flask_wtf import FlaskForm from flask_wtf.file import FileField, FileAllowed from wtforms import Form, StringField, PasswordField, validators, ValidationError from wtforms.validators import InputRequired, Email from wtforms.fields.html5 import EmailField from wtforms.widgets import TextArea from user.models import User class BaseUserForm(FlaskForm): name = StringField('Name', [validators.DataRequired(), validators.Length(min=2, max=30)]) email = EmailField('Email', [validators.DataRequired(), validators.Email()])Si echa un vistazo al archivo wtforms/validators.py en la línea 9:
import email_validatorSimplemente instale el paquete:
pip install email_validatorTuve el mismo problema con las últimas actualizaciones, traté de instalar email_validator y matraz-validator y continué con esta excepción. Resuelto agregando en requirements.txt la siguiente línea: email-validator == 1.0.5 como se sugiere [aquí].( https://github.com/alphagov/notifications-admin/commit/5ce2906c5aa6d16 )
En realidad wtforms[email]==2.3.1 es lo que necesito.
Si lo quieres instalado con wtforms :
pip install wtforms[email]Intenta instalar
pip install email-validatorEsto también me sucedió cuando lo ejecuto usando virtual env. anaconda 3.7 Sin embargo, cuando cambié el intérprete de mi proyecto a mi máquina local Python 3.7, ejecuté:
pip instalar email_validator
funcionó bien
Me pareció extraño que no pudiera instalar el módulo "email_validator" en mi anaconda Project Interpreter. Así que le sugiero que primero intente con la máquina local.
Intenta instalar
pip install WTForms==2.1necesita pip install email-validator , wtforms depende del email-validator.
puede ver el módulo de validación de correo electrónico en Github https://github.com/JoshData/python-email-validator
No sé si la causa raíz fue que usé zsh en la Terminal, pero también aparece el error "zsh: no se encontraron coincidencias: wtforms [correo electrónico]" cuando probé el siguiente comando.
pip install wtforms[email]Sin embargo, traté de hacer el siguiente comando, funcionó para mí.
pip install -U "wtforms[email]"Agregando a lo ya dicho para futuras referencias,
pip install email_validatorPD: no necesita importar email_validator después de la instalación.
de formas wtf
Valida una dirección de correo electrónico. Requiere la instalación del paquete email_validator. Por ejemplo: pip install wtforms[correo electrónico].
pip install wtforms[email] pip install email_validatorSi usamos wtforms.validators.Email en nuestro programa python, generará una excepción que nos pedirá que instalemos email_validator para soporte de validación de correo electrónico . La solución para ese problema es escribir el siguiente comando en la terminal pip install email_validator
A partir de la versión 2.3.0 de WTForms, la validación del correo electrónico es manejada por una biblioteca externa llamada email-validator ( PR #429 ). Si desea habilitar el soporte de validación de correo electrónico, debe instalar WTForms con email adicional requerido:
$ pip install wtforms[email] O puede instalar email-validator directamente:
$ pip install email-validatorO puede volver a la versión anterior de WTForms:
$ pip install wtforms==2.2.1 PD: si está utilizando Flask-WTF, excepto para instalar email-validator directamente, también puede usar el email adicional ( si PR #423 se fusionó ) en la próxima versión (> 0.14.3).
En el directorio de tu proyecto ejecuta:
pip instalar email_validator
¡Esto funcionó para mí!
Esto debería funcionar como funcionó para mí. Simplemente instale esto en la terminal del proyecto:
pip install email-validator
Si eliminó las dependencias de compilación antes de ejecutar su aplicación, verifique si existe idna .
Para Alpine Linux, use apk add py3-idna antes de instalar las dependencias de compilación. Entonces este paquete no estará en el paquete virtual de dependencia de compilación, por lo que no se eliminará automáticamente.
Dentro del archivo wtforms/validators.py , línea 392, puede ver que hay un manejo de excepciones para esta ocurrencia en particular, razón por la cual se ejecutan las siguientes líneas para generar la alerta
if email_validator is None: # pragma: no cover raise Exception("Install 'email_validator' for email validation support.") La solución es pip install email-validator en la misma ubicación/directorio por el bien de wtforms/validators.py.
Tuve el mismo error antes :(