运行分析时出现以下错误:
ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Cannot analyse the
file'/home/user/project/package/module.py', details:
'java.lang.IllegalArgumentException: 302 is not a valid line for pointer.
File [moduleKey=com.project, relative=package/module.py,
basedir=/home/user/project] has 95 line(s)'
这是正确的,该文件确实有95行。我检查了Pylint为该文件生成的报告(.sonar / pylint中的最后一个)和有两个模块的消息:
************* Module project.package.module
project/package/module.py:19: [C0301(line-too-long), ] Line too long (112/80)
project/package/module.py:1: [C0111(missing-docstring), ] Missing module docstring
************* Module django.contrib.admin.views.main
/home/user/.virtualenvs/project-env/local/lib/python2.7/site-
packages/django/contrib/admin/views/main.py:302: [W0201(attribute-defined-
outside-init), ChangeList.get_query_set] Attribute 'has_filters' defined outside __init__
所以第302行来自:文件,其中定义了超类。 PyLint完全分析了它的类,为了跳转到virtualenv,然后报告两个文件的消息。当传感器处理它时,它假定只有一个文件。
我认为传感器应该忽略当前文件之外的任何内容,因为项目中的任何内容最终都会被分析,并且不会报告项目之外的任何内容。
有没有办法在PyLint中禁用依赖关系的分析? (如果是这样,那可能是Sonar应该做的,对吗?)
答案 0 :(得分:0)
好的,所以修复很简单:更新Pylint。