工作和非工作配置总结
似乎这可以通过多种方式错误地配置,因此我决定将不同的选项写下来。我假设 VS Code,但对于命令行或其他编辑器,参数及其顺序是相同的。这些是使用所有软件包的最新版本进行测试的(在这篇文章的底部列出)
工作版本
# What you'll need is pylint_flask_sqlalchemy
"python.linting.pylintArgs": ["--load-plugins", "pylint_flask_sqlalchemy"]
# You can add pylint_flask but only if it is *AFTER* pylint_flask_sqlalchemy
"python.linting.pylintArgs": ["--load-plugins", "pylint_flask_sqlalchemy", "pylint_flask"]
非工作版本
# pylint_flask does not help, but can break it (see below)
"python.linting.pylintArgs": ["--load-plugins", "pylint_flask"]
# You can NOT add pylint_flask *BEFORE* pylint_flask_sqlalchemy
"python.linting.pylintArgs": ["--load-plugins", "pylint_flask", "pylint_flask_sqlalchemy"]
# CAUTION: These will disable pylint silently altogether!
# Do not use dash (-) but underscore (_)!
"python.linting.pylintArgs": ["--load-plugins", "pylint-flask-sqlalchemy", "pylint-flask"]
"python.linting.pylintArgs": ["--load-plugins", "pylint-flask"]
"python.linting.pylintArgs": ["--load-plugins", "pylint-flask-sqlalchemy"]
有兴趣的朋友可以参考一下
pylint_flask_sqlalchemy
>
pylint-flask-sqlalchemy1 是专门为解决此问题而创建的2。您可以通过将其添加到 pylint 的 --load-plugins 来启用它。在命令行中,这将是
python -m pylint --load-plugins pylint_flash_sqlalchemy <mymodule.py>
在VS Code(设置(JSON))中:
"python.linting.pylintArgs": ["--load-plugins", "pylint_flask_sqlalchemy"]
1还镜像到 GitHub:https://github.com/anybox/pylint_flask_sqlalchemy
2请参阅 this 对 pylint 问题跟踪器的评论。
pylint_flask
pylint-flask 是 Flask 的 pylint 插件。它与 Flask-SQLAlchemy 无关,而且它甚至不尝试解决误报问题 pylint 与 Flask-SQLAlchemy3 存在的问题。使用 pylint-flask 来“使错误消失”的唯一可能性是用破折号错误地加载它,这会使整个 pylint 被禁用。
好像pylint-flask必须在之后加载 pylint-flas-sqlalchemy;我用我的设置进行了测试,出于某种原因
"python.linting.pylintArgs": ["--load-plugins", "pylint_flask", "pylint_flask_sqlalchemy"]
将不起作用,但是
"python.linting.pylintArgs": ["--load-plugins", "pylint_flask_sqlalchemy", "pylint_flask"]
会的。所以加载插件的顺序很重要。
3自己查看代码:pylint-flask source & pylint-flask-sqlaclhemy source
注意:不要意外去除棉绒
正如pylint-flask 和pylint-flask-sqlalchemy 的文档所说,--load-plugins 参数中的名称应该用下划线书写;如果你使用
"python.linting.pylintArgs": ["--load-plugins", "pylint-flask", "pylint-flask-sqlalchemy"]
在 VS Code 中,错误会消失,但你所有的 linting 也会消失,因为 pylint 在后台静默崩溃。
安装 pylint-flask-sqlalchemy
pip install pylint-flask-sqlalchemy
使用过的版本
Flask 1.1.2
Flask-SQLAlchemy 2.4.4
pylint 2.5.3
pylint-flask 0.6
pylint-flask-sqlalchemy 0.2.0
另见