运行email_validator邮箱校验代码报No module named 'dns'错误如何解决
错误原因
你使用的email-validator库默认会对邮箱域名做DNS层面的投递有效性校验,该功能依赖dnspython库(模块导入名为dns)。你仅安装了email-validator本体,未安装对应的DNS依赖,因此运行时触发模块找不到的报错。
解决方案
你可以根据自身需求选择任意一种方案解决:
- 保留完整校验能力(包含域名MX记录存在性、投递可行性校验),执行以下命令安装完整依赖:
如果你使用的是conda环境,也可以执行pip install email-validator[dns]conda install -c conda-forge dnspython单独安装依赖库。 - 不需要做DNS层面校验,仅校验邮箱格式合规性的话,不需要额外安装依赖,只需修改校验代码关闭投递检查即可:
# 仅需修改validate_email调用参数即可 valid = validate_email(email, check_deliverability=False)
注意:如果你的项目使用了虚拟环境,需要先激活对应虚拟环境再执行依赖安装命令,避免依赖安装到全局环境后项目内无法识别。
内容的提问来源于stack exchange,提问作者E.MRZ
相关产品推荐
相关产品推荐

