【问题标题】:VS Code > Preferences > User Settings > Extensions > Python > Linting > Flake8 Args Added Item stopped workingVS Code > Preferences > User Settings > Extensions > Python > Linting > Flake8 Args 添加项目停止工作
【发布时间】:2019-11-21 15:07:10
【问题描述】:

请不要将此视为“已问及已回答”的问题。我真诚地一直在努力弄清楚为什么它停止工作,如果是 VS Code 问题,还是 Flake8 问题,或者我只是疯了,应该找到另一种解决方法。

在寻找阻止 Flake8 linter 的“文件太长”和“未使用”警告的方法时,我发现了一种被列为 StackFlow 上最热门的解决方案之一。我完全复制并粘贴了它,它起作用了!太好了,但是在 admin.py 文件中遵循有关此代码的 Django 项目教程时:

from django.contrib import admin
from .models import Choice, Question


class ChoiceInline(admin.StackedInline):
    model = Choice
    extra = 3


class QuestionAdmin(admin.ModelAdmin):
    fieldsets = [
        (None,               {'fields': ['question_text']}),
        ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
    ]
    inlines = [ChoiceInline]


admin.site.register(Question, QuestionAdmin)

突然,(设置已经好几天了),我收到了这个问题警告: 行太长(80 > 79 个字符) flake8(E501) (13,80)

我知道我可能对此过于挑剔,但这真的很烦人。我还读到我可以使用反斜杠来拆分行而不破坏代码的连续性,但我也尝试过,并收到一条消息说反斜杠在括号内是多余的。

我返回设置并检查它们是否仍然完全按照 Args 建议的那样确实有效。我删除了更改。我关闭并重新启动 VS Code,返回并重新插入 再次设置。仍然出现相同的错误,我不知道 Flake8 从哪里获取并重现错误消息,其中 80 大于 79 信息。

有没有人知道为什么设置突然停止工作并且 flake8 恢复到忽略它在设置中被指示忽略的参数?

这是停止为我工作的热门解决方案: VS Code、首选项、用户设置、扩展、Python、Linting、Flake8 Args

"python.linting.flake8Args": [
    "--max-line-length=120",
    "--ignore=E402,F841,F401,E302,E305",
],

我什至尝试将行长扩展到 180 并将 E501 添加到忽略列表中。没有任何效果。

【问题讨论】:

    标签: python vscode-settings flake8


    【解决方案1】:

    这是一个寻找我自己的答案的编辑。我发现如果我在实际的 settings.json 文件中而不是通过 VS Code 用户设置界面进行建议的编辑,那么编辑实际上确实有效。

    我不确定我是否可以说仅在此处进行更改就足够了,因为在我的研究和搜索中,我偶然在虚拟环境文件夹中安装了 flake。无论如何,我认为这将是一个好主意,因为我不希望 vscode 使用安装了 flake8 的全局系统,我假设在安装 vscode flake8 扩展时会发生这种情况。

    所以,我首先使用 pip 在我的虚拟环境项目文件夹中安装 flake8。我用 pip freeze 进行了检查。 Flake8 位于虚拟环境的 Windows \Scripts 文件夹中。

    然后我在该虚拟环境项目文件夹的 .vscode 文件夹中找到了 settings.json 文件。

    我之前所做的一切都没有奏效。我尝试了很多关于 StackOverflow 的其他建议。当我阅读 Flake8 文档时,我想编写一个 setup.cfg 文件,但无论我把它放在哪里,我都没有得到忽略我想要的警告和错误的结果。

    然后我回去重新阅读原始建议,发现它提到了两种方法,我尝试编辑 settings.json 文件。如果有人可以添加解释,我仍然会很感激,但就我而言,我已经找到了一个令人满意的答案。这是一次很棒的学习经历。

    【讨论】:

    • 是的,这个解决方案有效。我也有多个 settings.json,在 .vscode 目录中的 settings.json 中添加了 E501 忽略代码。
    【解决方案2】:

    我也遇到了这个问题,我的解决方案是禁用“pycodestyleEnabled”:

    {
    "python.linting.pycodestyleEnabled": false
    }
    

    【讨论】:

      猜你喜欢
      • 2022-10-02
      • 2021-07-14
      • 1970-01-01
      • 2020-07-06
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 2020-07-01
      • 1970-01-01
      相关资源
      最近更新 更多