pylint和DJANGO检测冲突解决办法

python插件中默认使用pylint的一个工具,专门用来检测python代码的书写是否有错误和是否符合良好的习惯。python官网(https://www.python.org/dev/peps/pep-0008/)专门有版块介绍推荐的python代码习惯,比如类,函数等的命名规则,遵守这些规则可以使自己的代码更加上档次。

然后pylint在面对django框架时表现的有些不足,因为django使用了大量的元编程(metaprograming)思想以及鸭子模型,以至于在程序运行时会修改不少对象的属性和行为(妹的,我也不知道元编程是什么鬼),但是这样给pylint这样的语法检测程序带来了比较大的困难。典型的就是集成了django.db.models.Model的模型层对象在编译时没有objects属性,但是运行时却有,造成我们在编写代码时pylint会报”has no objects attributes”之类的错误,虽然不影响程序运行,但是很影响心情啊。所以有人专门开发了pylint的插件pylint-django,很详细的介绍的文章在这里(https://blog.landscape.io/using-pylint-on-django-projects-with-pylint-django.html),作者好像就是插件的开发者,像热心的程序员致敬哦。使用pip install pylint-django即可安装,命令行里可以通过 pylint –load-plugins pylint_django [other option]的方法来使用,一定要注意是pylint_django,不是pylint-django。

但是,我现在说的是在vscode里面配置使用pylint-django,方法非常简单,在vscode中选择”文件”->”首选项”->”设置”打开vscode的设置文件,然后”python.linting.pylintArgs”处添加”–load-plugins”, “pylint_django”即可

有必须要的话重启下vscode,然后pylint就不会在报错了。