PyDev中的PyLint只分析最顶层项目目录中的文件

时间:2012-01-24 06:34:08

标签: python ide pydev pylint

我的项目目录类似于

src
    ProjectName
        Package1
            __init__.py
            Module1.py
            Module2.py
        Package2
            __init__.py
            Module3.py
            Moduel4.py
        __init__.py
        main.py
        setup.py

当我执行Project-> Clean ...时,PyLint运行,但只运行在最上面的包中的三个文件:__ init__.py,main.py和setup.py。

我已经进入了Project-> Properties-> PyDev - PYTHONPATH,所有源文件夹肯定都列在那里,所以我不确定为什么大多数文件夹都没有被分析。

此外,与this question一样,PyDev似乎没有解析PyLint输出,因为控制台中显示的错误和警告不在“Problems”输出选项卡或编辑器中利润率。这让我觉得它可能是一个版本/回归问题,就像那个问题一样。我可能会尝试使用旧版本的PyLint,看看它是否有效。

我正在使用Eclipse Helios,PyDev 2.2.1,PyLint 0.25.1和Python 2.7。

4 个答案:

答案 0 :(得分:3)

PyLint配置(窗口>首选项> pydev> pylint)具有'PyLint的最大进程数',因此,它只会同时对'n'个文件进行分析(因为产生了太多的进程)马上可以让你的机器停下来。)

所以,你可以为分析提出这个数字,并且它应该一次分析更多的文件(我建议为该分析提高它,然后再次减少数量,因为你通常不需要运行太多进程立刻)。

至于输出,可能是PyLint改变了它的格式(如果您认为是这种情况,请将其报告为pydev sourceforge跟踪器中的错误。)

答案 1 :(得分:2)

这可能是由Pylint输出格式的最近更改引起的,该输出格式现在打印列偏移量。您应该联系报告此问题的pydev维护人员。

答案 2 :(得分:1)

  

我已进入Project-> Properties-> PyDev - PYTHONPATH,所有源文件夹肯定都列在那里。

如果您的意思是您的项目中包含子文件夹(Package1Package2),那么就没有必要了。你应该只有你项目的主文件夹。

我使用PyDev 2.3.0,在清理项目时,Pylint正在处理所有项目的文件。 在PyDev 2.2.2中解决了解析Pylint输出的问题。请参阅我的回答here

答案 3 :(得分:1)

我刚刚发现,如果您尝试lint的文件不是有效的python模块名称,那么pylint将(静默地)不在其上运行。例如,如果您的项目bin目录中有一个名为do-thing的可执行python脚本,则它将不会被linted。重命名文件dothing,然后突然它将起作用(不需要.py)扩展名。