在 vscode 中启用 pylint_django 插件,pylint 停止工作

Posted

技术标签:

【中文标题】在 vscode 中启用 pylint_django 插件,pylint 停止工作【英文标题】:enabling pylint_django plugin in vscode, pylint stop working 【发布时间】:2019-04-17 15:36:39 【问题描述】:

这是我在 vscode 中的用户设置


  "python.pythonPath": "/Users/cristiano/miniconda3/envs/django-rest-2/bin/python",
  "python.linting.pylintEnabled": true,
  "python.linting.enabled": true,
  "python.linting.pylintArgs": [
    "--load-plugins",
    "pylint_django"
  ],

我通过 conda 安装了插件,和 pylint 一样

pylint                    2.1.1                    py36_0
pylint-django             0.11.1                     py_1    conda-forge
pylint-plugin-utils       0.4                        py_0    conda-forge

如果我注释掉“python.linting.pylintArgs”部分,pylint 可以正常工作。我需要启用插件以避免特定于 django 的错误,例如“Entity.objects.all()”,但如果我启用它,lint 将停止工作:它不会突出显示标准错误或警告之前正在执行此操作。

我在 win 和 mac 上使用 vscode 的行为完全相同。我也尝试使用 .pylintrc 文件,如here 所述,但结果相同:lint 停止工作。 使用基本 conda env 或自定义的相同行为。

【问题讨论】:

看起来不错,wfm,所以我想说你的问题出在你的 pythonPath 和环境上。 @Crixo - 你有没有设法解决这个问题?无论我尝试哪种配置,我都会遇到同样的问题。 对我来说,通过 pip 而不是 conda 安装插件 (pylint-django) 解决了这个问题。 通过直接在终端中运行 VSCode 输出 python 中显示的 pylint 命令,我设法获得了为我解决此问题的错误消息。那时我遇到了一个异常并且能够解决问题。 【参考方案1】:

pylint 的这个配置对我有用:

"python.linting.pylintEnabled": true,
"python.linting.pylintArgs": [
    "--disable=C0111", // missing docstring
    "--load-plugins=pylint_django,pylint_celery",
 ],

【讨论】:

【参考方案2】:

我也遇到了同样的问题。就像@J0hnG4lt 说的那样,我的 python 路径有问题。我没有指向环境的路径,我已经安装了pylint_django。这个配置对我有用。谢谢@Manu。

"python.pythonPath": "/Users/mc976/Documents/Programming/Python/Practice/music_service/venv/bin/python3",
"python.linting.pylintEnabled": true,
"python.linting.pylintArgs": [
    "--disable=C0111",
    "--load-plugins",
    "pylint_django"
]

此外,我认为您应该检查您的环境,以确保您使用pip list 正确安装了pylint_django

【讨论】:

【参考方案3】:

我的问题比较平淡(但也许它会帮助像我这样的其他额头拍打者)。在正确的 virtualenv 目录中运行 PIP 安装!

pip install pylint-django --upgrade

另请注意,插件错误会导致 Pylint 完全无法加载静默。从空白pylintArgs 开始,然后慢慢地一次添加一个,看看哪里出了问题。

【讨论】:

这也是我的正确答案。我已经在全球范围内安装了它,但并没有真正认为是我的本地 env 解释器在做 linting。【参考方案4】:

在这里为自己找到了一个可行的答案:https://donjayamanne.github.io/pythonVSCodeDocs/docs/linting/

我的 settings.json 文件现在显示为:


    "python.pythonPath": "C:\\ProgramData\\Anaconda3\\envs\\djangoSite2\\python.exe",
    "python.linting.pylintEnabled": true,
    "python.linting.pylintArgs": ["--disable=C0111","--load-plugins", "pylint_django"],

然后添加 linting,但不会在它找不到的字段上抛出错误(如 Entity.objects.all() 之一),但缺点是如果您尝试引用真正不存在它不会引发错误。

【讨论】:

【参考方案5】:

它现在可以在我的 Mac 上运行。这是我工作区的settings.json


"python.linting.pylintEnabled": true,
"python.linting.pycodestyleEnabled": false,
"files.autoSave": "afterDelay",
"editor.fontSize": 14,
"editor.wordWrapColumn": 90,
"editor.autoClosingQuotes": "beforeWhitespace",
"python.pythonPath": "/Users/myname/anaconda3/envs/myproject/bin/python",
"python.linting.pylintArgs": [
    "--disable=C0111", // missing docstring
    "--load-plugins=pylint_django",
 ],

我必须小心将 pylint-django 安装到正确的 python 环境中。对我来说,这意味着在终端中运行这个命令:

$ /Users/myname/anaconda3/envs/myproject/bin/python -m install pip pylint pylint-django

【讨论】:

以上是关于在 vscode 中启用 pylint_django 插件,pylint 停止工作的主要内容,如果未能解决你的问题,请参考以下文章

在 VSCode 中启用 Dart DevTools 时出现错误 - Dart DevTools exited with code 65

json 使用VSCODE 1.7在jsx文件中启用Emmet

在 VSCode 中,如何为没有 package.json 的项目启用 Angular/Backbone/jQuery 智能感知?

vscode中有没有办法在不保存文件的情况下启用语法突出显示? [复制]

vscode中端工监测问题的功能关了如何打开

在为第三方库进行模块扩充时,如何在 VSCode 中为 JavaScript 中的代码库启用 TypeScript 智能感知?