为了检查python模式中的代码,我使用flymake和pyflakes
另外我想用pylint检查代码样式(pep8)(与pyflakes在同一页面上的描述)
此解决方案有效.但我无法配置flymake与pyflakes和pylint一起工作.我该怎么做?
我使用pylint来检查我的python代码,并发现了这个约定问题:
C:11, 0: Wrong continued indentation before block.
+ this_time <= self.max):
^ | (bad-continuation)
Run Code Online (Sandbox Code Playgroud)
我试图改进时间,但问题仍然存在,有人可以帮忙吗?谢谢!
if len(remaining_obj_list) > 0:
for i in a_list:
this_time = self.__get_time(i)
for remaining_obj in remaining_obj_list:
if (remaining_obj.get_time() # to fit 78 char rule
+ this_time <= self.max):
i.append(remaining_obj)
remaining_obj.set_used(True)
if 0 == len(self.__get_unused_list):
break
Run Code Online (Sandbox Code Playgroud) 我正在重构并消除一些相当单一的代码上的通配符导入.
Pylint似乎在列出通配符导入所带来的所有未使用的导入方面做得很好,但我希望它能提供一个已使用的导入列表,这样我就可以快速替换通配符导入.有什么快速的方法吗?我即将解析pyLint的输出并set.difference()对此和dir()导入的模块执行操作.但我敢打赌,我不知道有一些工具/程序.
我是python和currenty的新手我正在尝试使用pylint来检查代码质量.我遇到了问题.我的pylint并没有指向virtualenv python解释器.这是我运行pylint --version时得到的输出
$ pylint --version
pylint 0.21.1,
astng 0.20.1, common 0.50.3
Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]
Run Code Online (Sandbox Code Playgroud)
在virtualenv我安装了python 2.7.如果有人可以指出我如何解决这个问题,那么会给你一些帮助.
example.py:
'''
demo too many ancestors
'''
from flask_security.forms import RegisterForm
from wtforms.fields import TextField
class ExtendedRegisterForm(RegisterForm):
'''An extended register form'''
name = TextField('Name', [])
Run Code Online (Sandbox Code Playgroud)
当我运行pylint时:
$ pylint -r n example.py
************* Module example
R: 7, 0: Too many ancestors (10/7) (too-many-ancestors)
Run Code Online (Sandbox Code Playgroud)
这是什么意思,我该如何解决?
pylint:命令行或配置文件:1:用户警告:在不带模块名称的 overgeneral-exceptions 选项中指定异常名称已被弃用,并且在 pylint 3.0 中将删除对它的支持。使用完全限定名称(也许是“builtins.BaseException”?)。
出现 PyLint 错误。我的文件中没有任何 except 子句,但我看到此错误。
我们有许多似乎不需要的python类__init__,将它们初始化为空是完全可接受的甚至是更好的.PyLint似乎认为这是一件坏事.我错过了一些有关为什么不是__init__一个坏气味的见解?或者我应该只是压制这些警告并克服它?
我在(很多)我的Python文件中有这个代码用于项目.
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from pprint import pformat
Run Code Online (Sandbox Code Playgroud)
Pylint抱怨说:
==ook:2
==eek:2
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from pprint import pformat (duplicate-code)
Run Code Online (Sandbox Code Playgroud)
虽然这是真的完全无关紧要.这些from __future__ [...]行是为了防止从Python 2到Python 3的兼容性回归.因此,pylint不应该抱怨它们在不同的文件中是相似的.
有没有办法阻止pytlint这样做?
我知道,pylint: disable=duplicate-code但由于导入范围,这将禁用整个文件.但是,我不想为整个文件禁用它.
我有这个测试文件:
"""module docstring"""
class Aclass:
"""class docstring"""
def __init__(self, attr=None, attr2=None):
self.attr = attr
self.attr2 = attr2
def __repr__(self):
return 'instance_of the Aclass {self.attr}.'
def __str__(self):
return 'The A with: {self.attr}.'
def init_a():
"""function docstring"""
a_inst = Aclass()
attr = 1
attr2 = 2
a_inst.attr2 = attr2
# should be: a_inst.attr = attr, but have a typo
attr = attr
Run Code Online (Sandbox Code Playgroud)
我使用pylint对其进行了检查,输出显示一切正常。
$ pylint test.py
--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)
Run Code Online (Sandbox Code Playgroud)
Based on the linting …
对于像这样的块:
try:
#some stuff
except Exception:
pass
Run Code Online (Sandbox Code Playgroud)
pylint引发警告W0703'Catch"Exception"'.为什么?