大家在自己的 Python 项目中倾向使用哪个 Linter? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Livid
61.5D
439.51D
V2EX    Python

大家在自己的 Python 项目中倾向使用哪个 Linter?

  •  
  •   Livid
    PRO
    2019-07-31 03:41:38 +08:00 16915 次点击
    这是一个创建于 2263 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • bandit
    • flake8
    • mypy
    • pep8
    • prospector
    • pydocstyle
    • pylama
    • pylint
    31 条回复    2019-08-01 12:10:18 +08:00
    pinepara
        1
    pinepara  
       2019-07-31 04:11:32 +08:00   1
    Livid
        2
    Livid  
    MOD
    OP
    PRO
       2019-07-31 04:14:36 +08:00
    @pinepara 感谢。

    这个项目很有意思。我会去学习一下。

    df4VW
        3
    df4VW  
       2019-07-31 04:17:52 +08:00
    black 是 formatter,然后用 flake8 做 linter
    Yvette
        4
    Yvette  
       2019-07-31 04:20:26 +08:00
    我也在用 black,因为据我所知只有它可以把单引号变成双引号,剩下的功能基本上都大同小异。不过这个在 VS Code 里面属于 formatter,在 linter 里没有它,可能跟 linter 是两类东西?
    silkriver
        5
    silkriver  
       2019-07-31 07:59:10 +08:00
    应该叫 pycodestyle,pep8 是旧名
    https://github.com/PyCQA/pycodestyle/issues/466
    lrh3321
        6
    lrh3321  
       2019-07-31 08:17:27 +08:00 via Android
    flake8
    muzuiget
        7
    muzuiget  
       2019-07-31 08:22:51 +08:00
    pylint
    ipwx
        8
    ipwx  
       2019-07-31 08:29:49 +08:00 via Android   2
    pycharm ...
    xiaket
        9
    xiaket  
       2019-07-31 08:32:18 +08:00
    大部分用 black, 想正式一点就用 pylint 跑一下, 不过写 python 这么多年, 自认为已经不逾矩了... (已经被各种 linter 调教好了)
    sidegem
        10
    sidegem  
       2019-07-31 08:45:26 +08:00 via iPhone
    flake8
    secsilm
        11
    secsilm  
       2019-07-31 08:51:27 +08:00 via Android
    black 是 formatter,不是 linter
    SuperMild
        12
    SuperMild  
       2019-07-31 08:52:48 +08:00
    flake8
    lfcyme
        13
    lfcyme  
       2019-07-31 08:58:02 +08:00 via Android
    pep8
    whoami9894
        14
    whoami9894  
       2019-07-31 09:01:55 +08:00 via Android
    @Yvette
    单行字符串的单引号也替换成双引号吗,我记着 Google 的 Python 规范推荐字符串用单引号
    congeec
        15
    congeec  
       2019-07-31 09:03:02 +08:00
    用 flake8,pylint 又慢又严格,flake8 刚好
    sikariba
        16
    sikariba  
       2019-07-31 09:18:12 +08:00
    单引号只用摁一个键,双引号还要加一个 shift
    littlewey
        17
    littlewey  
       2019-07-31 09:25:45 +08:00 via iPhone
    flake8
    janxin
        18
    janxin  
       2019-07-31 09:31:06 +08:00
    jedi+black+flake8+mypy+pydocstyle

    VSCode 使用工具列表
    Yvette
        19
    Yvette  
       2019-07-31 09:33:22 +08:00
    @whoami9894 Google 的代码规范的目的只是为了协作和风格嘛,并没有对错之分的。如果不需要 string normalization 可以加 -S 参数来关掉
    CatCode
        20
    CatCode  
       2019-07-31 09:36:14 +08:00
    之前用的 vscode,pylint+pep8,但是 format 的时候觉得一行不算长的代码,都给截断成两行。
    然后,就换了 pycharm。
    jdhao
        21
    jdhao  
       2019-07-31 09:48:28 +08:00 via Android
    pylint 和 flake8,不用 formatter
    shidenggui
        22
    shidenggui  
       2019-07-31 12:07:25 +08:00
    pylint + isort + black
    gnozix
        23
    gnozix  
       2019-07-31 12:09:37 +08:00
    没有使用 pyre 的吗
    BBCCBB
        24
    BBCCBB  
       2019-07-31 12:12:50 +08:00
    有大侠知道 autopep8 等怎么配置格式化时候的缩进等配置的吗?? 比如用两个空格还是 4 个...
    forever0y
        25
    forever0y  
       2019-07-31 12:34:15 +08:00
    脑子 lint,或者 Code Review 让同事 Lint。
    xpresslink
        26
    xpresslink  
       2019-07-31 14:38:58 +08:00
    直接用 Pycharm 就得了,还不嫌累折腾这个。
    ytmsdy
        27
    ytmsdy  
       2019-07-31 14:44:48 +08:00
    Pycharm+1
    4ever911
        28
    4ever911  
       2019-07-31 16:39:59 +08:00
    disabled
    ClericPy
        29
    ClericPy  
       2019-07-31 17:48:33 +08:00
    都试过, 包括 pyright
    一般情况用 Pycharm 自带的就够了

    我现在是 vscode 里的 mypy + flake8, 格式化用的 自定义 yapf

    一开始是 black 忠实拥趸, 然后看到 issue 里作者拒绝实现 format selection 这个功能, 粉转路了, 很多地方不如 yapf 的兼容性, 包括同时支持 py2 调用, 不过这是 1 年多以前的看法, 最近没太关注了
    PS: black 作者的头像看起来有点让我心慌...
    banxi1988
        30
    banxi1988  
       2019-07-31 23:32:49 +08:00
    PyCharm 自带, 加配置了 mypy, 毕竟现在追求静态类型声明.
    格式化用 black ,省心.

    PS: 这么久了,站长能把我从小黑屋放出来了吗?
    frostming
        31
    frostming  
       2019-08-01 12:10:18 +08:00
    flake8 + mypy
    formatter 用 black

    pylint 太嗦了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5834 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 02:43 PVG 10:43 LAX 19:43 JFK 22:43
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86