我的 Django + Visual Studio Code 的 Pylint 设置

图拉鼎 2018-04-14 21:46

最近又开始使用起 Visual Studio Code 写 Python/Django 的项目,发现不少地方可以配置,而以前常常忽略了这些,只是简单的安装了相关插件了事。今天先讲讲 Pylint 的相关配置。

使用 Pylint 可以对代码进行最基本的检查,把明显的问题消灭在编写阶段,而不是运行时才看出来。根据《Linting Python in VS Code》,VS Code 已经默认有比较好用的配置了,然而如果你使用的是 Django 项目,那么默认并不会很好的工作,还需要进行一点点配置。

首先,我用的是 pipenv,除了安装 pylint 以外,还需要安装 pylint-django 这个插件:

pipenv install --dev pylint pylint-django

安装完后,就可以在 .vscode/settings.json 写入一行配置,把 pylint-django 这个插件载入进来:

"python.linting.pylintArgs": ["--load-plugins", "pylint_django"]

做了这个操作后,类似于 User.objects.all 这样的代码,objects 不存在的错误就不会提示了。但是这个配置有个负作用,即它把 VS Code 的最小化 Pylint 配置(pylintUseMinimalCheckers)给覆盖了,你会发现你的 Python 代码一下子多了很多警告和提示。

这如何是好?你可以重新把这些配置写入上面的 pylintArgs 这个参数里,但貌似不太优雅。

--disable=all --enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode

我想了想,因为我不止一个 Django 项目,这些配置不应该是项目级的,需要是系统级的。于是我通过 pylint --generate-rcfile 命令生成一个 ~/.pylintrc 配置文件,并稍做了简单修改(修改了以下三个值 load-plugins,disable,enable):

load-plugins=pylint_django
disable=all
enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode

这样的话,我只要保证我的 Django 开发环境安装好 pylint、pylint-django,并且 VS Code 设置了正确的 Python Interpreter。VS Code 的默认环境,就可以让我好好地写 Python 代码了。

当然想要 Python 代码写得更加规范,只开以上最小化检查是不够的,这方面我还用的比较少,接下去就在实践中去增加或修改吧。

本站架设于Linode 东京机房

[返回] [原文链接]