首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python: pycodestyle (ex pep8)与pylint的严格性

python: pycodestyle (ex pep8)与pylint的严格性
EN

Stack Overflow用户
提问于 2019-07-29 14:36:57
回答 1查看 7K关注 0票数 8

我有一个python项目,我想检查它是否符合PEP8

我的setyp.cfg如下:

代码语言:javascript
复制
[pycodestyle]
count = True
ignore = E266, W504
max-line-length = 80
statistics = True
exclude = .venv,./build%

经过一些清理之后,我的pycodestyle检查现在没有错误,也没有警告(当然,忽略了那些错误)

代码语言:javascript
复制
~/Workspace/my-app  master ✔                                                                                                                        2h36m
➢  pycodestyle .
(.venv)
~/Workspace/my-app  master ✔

但是,对我的项目运行pylint会产生大量错误:

(中的一些只是为了演示而跟随)

代码语言:javascript
复制
************* Module somemodule.commands
src/somemodule/commands.py:98:0: C0330: Wrong continued indentation (add 16 spaces).
                            format(gcp_project)))
                            ^               | (bad-continuation)
src/somemodule/commands.py:1:0: C0111: Missing module docstring (missing-docstring)
src/somemodule/commands.py:21:-1: W0105: String statement has no effect (pointless-string-statement)
src/somemodule/commands.py:29:4: C0103: Variable name "p" doesn't conform to snake_case naming style (invalid-name)
src/somemodule/commands.py:45:4: C0103: Variable name "p" doesn't conform to snake_case naming style (invalid-name)
src/somemodule/commands.py:41:16: W0613: Unused argument 'g_project' (unused-argument)
src/somemodule/commands.py:58:0: C0111: Missing function docstring (missing-docstring)
src/somemodule/commands.py:59:4: C0103: Variable name "p" doesn't conform to snake_case naming style (invalid-name)
src/somemodule/commands.py:100:4: R1705: Unnecessary "else" after "return" (no-else-return)
src/somemodule/commands.py:102:8: C0103: Variable name "p2" doesn't conform to snake_case naming style (invalid-name)
src/somemodule/commands.py:123:4: C0103: Variable name "p" doesn't conform to snake_case naming style (invalid-name)
src/somemodule/commands.py:139:0: C0111: Missing function docstring (missing-docstring)
src/somemodule/commands.py:2:0: C0411: standard import "import os" should be placed before "import click" (wrong-import-order)
src/somemodule/commands.py:3:0: C0411: standard import "import sys" should be placed before "import click" (wrong-import-order)
src/somemodule/commands.py:5:0: C0411: standard import "from subprocess import Popen, PIPE" should be placed before "import click" (wrong-import-order)

这两个工具怎么会产生如此偏离的结果呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-26 13:10:16

我只是在这个问题上绊倒了,我亲自比较了一下pycodestylepylint

简而言之,答案是pycodestylepylint的“子集”。让我引用基本python工具的一些话

  • Pycodestyle (以前的PEP8)是官方的linter工具,用于根据PEP8 python的样式惯例检查python代码。
  • Pylint是一个python,它检查源代码,并充当bug和质量检查器。它有比PEP8(Python )更多的验证检查和选项。
    • 这是python中最常用的工具。
    • 它包括以下特性:
      • 检查每一行的长度
      • 根据项目的编码标准检查变量名称是否格式良好
      • 检查声明的接口是否真正实现。
      • ..。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57256056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档