Python3.6.8运行报错No module named wtforms.compat如何解决
解决方案
问题根因
WTForms 3.0 及以上正式移除了wtforms.compat兼容模块,该模块原本是为了兼容Python2和Python3的字符串类型差异,同时你使用的Python 3.6.8也不支持WTForms 3.0以上的版本。
可行解决方法
方案1:降级WTForms到带compat模块的最后一个稳定版本
直接执行安装命令指定版本即可:pip install wtforms==2.3.3若你使用的是Python3独立pip,替换为
pip3;如果有虚拟环境请先激活对应环境再执行命令。安装完成后可以用pip show wtforms确认版本号是否为2.3.3,避免装错Python环境。方案2:手动修改导入语句适配高版本WTForms(仅适用于你自己写的代码中直接导入了该模块的场景)
将原来的导入行:from wtforms.compat import string_types, text_type替换为Python3原生类型声明即可:
string_types = (str,) text_type = str方案3:适配关联依赖版本
如果该报错是由Flask-WTF等依赖WTForms的第三方库触发的,你可以降级对应依赖到兼容版本:pip install flask-wtf==0.14.3该版本的Flask-WTF默认依赖WTForms 2.x系列,可自动解决兼容问题。
内容的提问来源于stack exchange,提问作者Ravi
相关产品推荐
相关产品推荐

