在 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 中为 JavaScript 中的代码库启用 TypeScript 智能感知?