我已经很好地安装了Pylint导入烧瓶。使用相同的flask安装,我可以在我的应用程序中运行wtforms。但是,当我在导入wtforms的文件上运行Pylint时:
from flask.ext import wtf
from flask.ext.wtf import validators
class PostForm(wtf.Form):
content = wtf.TextAreaField('Content', validators=[validators.Required()])从Pylint我得到:
E: 1,0: No name 'wtf' in module 'flask.ext'
E: 2,0: No name 'wtf' in module 'flask.ext'
F: 2,0: Unable to import 'flask.ext.wtf'当我在周围搜索时,我发现this discussion暗示这可能是因为flask.ext库实际上只是通向库的“捷径”。
你知道我该怎么解决这个问题吗?非常感谢!
发布于 2013-04-17 22:41:06
因此,flask.ext实际上是由Armin以一种令人敬畏的方式编写的自定义导入器。它允许人们在单独的包中安装扩展,但以一种一致的方式导入它们。(实际上,你应该去读一下它的代码。这太棒了。)也就是说,pylint显然不欣赏它的优雅(在我看来,这实际上是一个bug ),但你很幸运。解决这个问题的简单方法是执行以下操作
import flask_wtf as wtf
# The above is the equivalent line as:
# from flask.ext import wtf
from flask_wtf import validators
# This is the same as:
# from flask.ext.wtf import validators这应该会让pylint感到高兴。它没有使用flask.ext那么好,但你必须选择关闭pylint或使用优雅的代码,但你不能(现在)两者兼而有之。
发布于 2015-06-29 06:17:33
被这个bug困扰了一段时间后,我创建了一个pylint插件来解决这个问题。代码在https://github.com/jschaf/pylint-flask
要使pylint能够“查看”flask.ext模块,请执行以下操作:
pip install pylint-flaskpylint --load-plugins=pylint_flask <your module>发布于 2016-12-07 19:54:50
使用flask_<>而不是flask.ext.<>
不使用"from flask.ext.wtf import validators“,而使用"from flask_wtf import validators”
邮件和消息模块也面临同样的问题。Had必须使用"from flask_mail import Message,Mail“代替"from flask.ext.mail import Message,Mail”
https://stackoverflow.com/questions/16061514
复制相似问题