标签: pylint

如何在windows下为pylint指定配置文件?

我正在评估pylint作为源代码检查器,我想在一行上自定义最大字符数.

我想使用配置文件.由于--generate-rcfile命令,我已经生成了一个模板,并且我已经进行了修改.

我正在尝试运行pylint --rcfile = myfile.rc,但我可以看到我的更改未被pylint考虑在内.我已经为我的文件尝试了不同的位置:\ Python26\Scripts \和pylint.d在我的用户文件夹中没有任何成功.

有谁知道我做错了什么?

是否可以使用pylint-gui的配置文件?我也不能这样做?

python windows pylint

25
推荐指数
1
解决办法
1万
查看次数

"未使用的导入警告"和pylint

所以我正在研究Python中的一个项目,并试图通过pylint来保持它的标准.所以,我有一个源文件,(我们只称它为a.py)

#a.py
import loggingsetup

def foo():
   log.info("This is a log message")
Run Code Online (Sandbox Code Playgroud)

但是,我想控制日志记录的样子,所以在loggingsetup中我有类似的东西:

#loggingsetup.py
import logging

logging.root.setLevel(logging.DEBUG)

consoleOut = logging.StreamHandler()
consoleOut.setLevel(logging.INFO)  
consoleOut.setFormatter(logging.Formatter("\t"+logging.BASIC_FORMAT))
logging.root.addHandler(consoleOut)

#etc
Run Code Online (Sandbox Code Playgroud)

现在,这似乎工作正常.我想,作为一个初步的问题,我应该问,如果这是去了解这个正确的方式,或者如果有构建我的代码以不同的方式,这将是优选的.

但我的主要问题是,当我在a.py上运行pylint时,我收到类似"未使用的import - import loggingsetup"的警告,因为我实际上并没有从loggingsetup调用任何方法或函数.

我可以做一些事情,比如重新定义loggingsetup的主体作为一个函数并调用它,但它看起来很傻和容易出错(如果我从其他地方导入loggingsetup,我不得不担心调用它两次,如果我理解了python处理导入,这不是我当前设置的问题).

我显然可以告诉pylint忽略警告,但我想我先问这里,以确保这实际上不是我应该处理的事情.

python warnings pylint

25
推荐指数
4
解决办法
3万
查看次数

Pylint中的"模块中没有名称"错误

我有一个main.py用以下代码命名的文件:

#!/usr/bin/env python3

import utils.stuff

if __name__ == "__main__":
    print("hi from main.py")
    utils.stuff.foo()
Run Code Online (Sandbox Code Playgroud)

在目录中main.py,我有一个名为的子目录utils,其子文件名为stuff.py以下代码:

print("hi from stuff.py")

def foo():
    print("foo")
Run Code Online (Sandbox Code Playgroud)

如果我从命令行运行./main.py,我得到以下输出:

hi from stuff.py
hi from main.py
foo
Run Code Online (Sandbox Code Playgroud)

这正是我所期待的.但是,如果我运行pylint main.py,我会得到以下输出:

No config file found, using default configuration
************* Module main
C:  1, 0: Missing module docstring (missing-docstring)
E:  3, 0: No name 'stuff' in module 'utils' (no-name-in-module)
E:  3, 0: Unable to import 'utils.stuff' (import-error)
E:  7, 4: …
Run Code Online (Sandbox Code Playgroud)

python pylint

24
推荐指数
1
解决办法
3万
查看次数

PyLint无法识别cv2成员

我在opencv项目上运行pylint,我在VS代码中收到许多关于不存在的成员的pylint错误.

示例代码:

import cv2
cv2.imshow(....)
Run Code Online (Sandbox Code Playgroud)

获得的错误:

在此输入图像描述

但是,代码运行正常,没有任何错误.

版本:pylint 1.8.1,astroid 1.6.0

opencv pylint visual-studio-code

24
推荐指数
6
解决办法
2万
查看次数

使用PyDev设置Pylint

我通过easy_install安装了pylint.我可以pylint <filename>成功地跑步.但是pydev拒绝使用它.

  • 我检查了"使用pylint"
  • 我配置了正确的路径
  • 我在eclipse中更新了我的python解释器,在pythonpath中有pylit
  • 我使用Eclipse Galileo
  • 我已经自动检查了构建
  • 我尝试清理整个项目,没有错误

我究竟做错了什么?

pylint pydev eclipse-3.5

23
推荐指数
1
解决办法
8648
查看次数

如何在vim中使用pylint

我不想安装另一个插件,比如pylint.vim,

今天,我决定使用vim edit python而不是pydev,这是一个eclipse插件.但我遇到了问题.

我在我的vimrc中添加了这个

autocmd BufWritePost *.py !pylint <afile>
Run Code Online (Sandbox Code Playgroud)

但是pylint在输出中不包含文件名

************* Module mymodule
E: 22: invalid syntax

shell return 2
Run Code Online (Sandbox Code Playgroud)

所以它不能跳到第22行,所以我使用sed改变输出

autocmd BufWritePost *.py !pylint <afile> | sed 's/^\(\w*\):\s*\([0-9]\+\)/<afile>:\2: \1: /g'
Run Code Online (Sandbox Code Playgroud)

它返回:

mymodule.py:22: E: : invalid syntax
Run Code Online (Sandbox Code Playgroud)

但没有shell返回2由vim.所以它仍然无法跳到那条线.vim认为它编译成功

=========================新评论=========== 在Vim的`autocmd`命令中调用一个函数

我想也许我应该使用make命令并设置makeprg,所以我使用下面的配置

autocmd FileType python let &makeprg='pylint <afile> | sed s/^\(\w*\):\s*\([0-9]\+\)/<afile>:\2: \1: /g'
autocmd BufWritePost *.py make
Run Code Online (Sandbox Code Playgroud)

当我保存时,vim返回:

************* Module count
E:  3: invalid syntax
(1 of 2): ************* Module count
Error detected while processing BufWritePost Auto commands for "*.py": …
Run Code Online (Sandbox Code Playgroud)

linux vim sed pylint

23
推荐指数
2
解决办法
2万
查看次数

如何在pylint-1.0.0之后显示Pylint消息ID?

与启动pylint-1.0.0--include-ids不再允许争论.

如何得到:

************* Module foo.bar
E:199,11: Module 'yaml' has no 'scanner' member (no-member)
************* Module foo.baz
W:153,27: Unused variable '_filenames' (unused-variable)
Run Code Online (Sandbox Code Playgroud)

为每个警告显示ID(例如W0142)?

pylint

23
推荐指数
1
解决办法
4442
查看次数

自动文档字符串和注释拼写检查

请考虑以下示例代码:

# -*- coding: utf-8 -*-
"""Test module."""


def test():
    """Tets function"""
    return 10
Run Code Online (Sandbox Code Playgroud)

pylint给它10个10,flake8没有发现任何警告:

$ pylint test.py 
...
Global evaluation
-----------------
Your code has been rated at 10.00/10
...
$ flake8 test.py
$
Run Code Online (Sandbox Code Playgroud)

但是,正如您所看到的,test函数的文档字符串中存在拼写错误.并且,您的编辑器可能会自动突出显示它,例如,这是Pycharm如何做到的:

在此输入图像描述

多亏了/sf/ask/150591031/话题,现在我知道有一个叫相关的拼写检查库PyEnchant那可用于检测拼写错误.

我的最终目标是自动检测项目中的拼写错误,并使拼写检查成为持续构建,测试和代码质量检查运行的一部分.

有没有办法实现这一目标pylint?如果没有,我也会感谢任何关于在PyEnchant项目方面应用于文档字符串和注释的提示(在这种情况下,pylintpyflakes插件可以由它制作).

如果我疯狂地关注代码质量,也请告诉我.

python code-analysis pylint static-code-analysis

23
推荐指数
2
解决办法
2668
查看次数

如何自动修复 pylint 报告的 lint 问题?

就像我们有“eslint --fix”来自动修复 Javascript 代码中的 lint 问题一样,我们是否也有针对 Python 代码的pylint 的东西?

python pylint

23
推荐指数
2
解决办法
2万
查看次数

如何处理pylint消息:ID:W0612未使用的变量

我正在使用pylint将一些代码更新为PEP 8标准.部分代码抛出了W0612未使用的变量错误,但这是因为它使用了一个返回(x,y)的模块,例如在这种特殊情况下只需要x时,就是这样做了.

(var_1, var_2) = func()

def func():
    a="a"
    b="b"
    return (a,b)
Run Code Online (Sandbox Code Playgroud)

然后返回var_1但从未使用var_2,因此会抛出错误.我该怎么处理?我在想这个

var = func()[0]
Run Code Online (Sandbox Code Playgroud)

处理它的最佳方法是什么?

python coding-style pylint

22
推荐指数
1
解决办法
2万
查看次数