问题标签 [pylint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
958 浏览

python - pylint 导入和动态路径修改

我的项目通常是这样的结构:

其中__init__.py包含以下代码

这在导入时“跳过”python目录以允许表单中的 python 代码from projectname import mymodule而不是from projectname.python import mymodule.

然而,这似乎破坏了 pylint,尽管$PYTHONPATH设置正确,但无法导入项目中的任何模块。projectname -> python在修复问题中创建软链接,projectname但不是一个合适的解决方案。

关于如何在不更改目录结构的情况下解决此问题的任何建议?

0 投票
1 回答
1974 浏览

python - Pylint 无法在 OS X 上使用 Emacs GUI;从命令行工作

当从命令行 ( emacs filename.py) 运行时,flymake 和 pylint 可以完美地协同工作。正确突出显示错误。(尽管我无法通过工具提示悬停来获取错误详细信息,因为它是文本模式。)

当从 GUI (Carbon Emacs) 运行时,Flymake 立即返回,文件中的第一行高亮显示错误“ in <module>”。第一行即使在“Hello World”脚本上也显示错误。)我想让它在 GUI 模式下正常工作,以便我可以用鼠标导航(我知道,我知道)并使用工具提示来获取详细信息在 pylint 上报告错误。

我用“ easy_install pylint”安装了pylint,pylint和epylint脚本在“ ~/py/scripts”中。我将该目录添加到我的 .bashrc 中的 PATH 中:

(我的 .profile 是我的 .bashrc 的符号链接。)

我意识到 Emacs-GUI 没有从我的 .bashrc 加载路径,所以我创建了一个 ~/.MacOSX/environment.plist 文件,使用我在终端中看到的完整 PATH 设置 PATH 变量。

现在在 Emacs-GUI " (getenv "PATH")" 中,输出看起来是正确的:

同样,“ C-h v exec-path”的输出看起来是正确的:

这让我对如何解决这个问题没有进一步的想法。我绝不是 emacs 大师,所以我可能在这里遗漏了一些明显的东西;随时询问更多细节。

OS X 10.6.7;碳 Emacs 22.3.1;皮林特 0.23.0。

来自 .emacs 的 Flymake / Pylint 代码:

更新 2011-04-05 以响应@sanityinc 的回答:

flymake in 的详细级别 3 输出:(*messages*这不会使问题的根源对我来说很明显。)

为了比较,这是从 emacs text mode运行时 flymake verbosity 3 的输出。“hello world”文件通过了所有 pylint 测试。

0 投票
1 回答
8805 浏览

python - Pylint 抱怨 wxPython——“公共方法太多”

对于以下简单的wxPython片段:

我总是从 Pylint 收到警告消息“R0904: 12:MyApp: Too many public methods”。我怎样才能防止这种情况?

0 投票
3 回答
2006 浏览

python - imp.find_module 的替代品?

背景

当您使用命名空间包并将代码库划分为单独的文件夹时,我已经厌倦了 pylint 无法导入文件的问题。因此,我开始深入研究已被确定为问题根源的 astNG 源代码(参见关于 astng 的错误报告8796)。问题的核心似乎是在imp.find_module查找导入的过程中使用了自己的 python。

发生的情况是导入的第一个(子)包 - ain import a.b.c- 被提供给find_module路径None。无论返回什么路径,都会被送入find_module查找循环中的下一个通道,您b在前面的示例中尝试在其中查找。

来自 logilab.common.modutils 的伪代码:

问题

这就是问题所在:您只能从 中获得第一个最佳命中find_module,其中可能包含或可能没有您的子包。如果您没有找到子包,则无法退出并尝试下一个。

我尝试显式使用 sys.path 而不是 None,以便可以从路径列表中删除结果并进行第二次尝试,但是 python 的模块查找器足够聪明,路径中不必完全匹配,使这种方法无法使用-无论如何,据我所知。

泪眼恳求

是否有替代 find_modules 的方法,它将返回所有可能的匹配项或排除列表?我也对完全不同的解决方案持开放态度。最好不要手动修补 python,但这并非不可能 - 至少对于本地解决方案而言。

(警告购买者:我正在运行 python 2.6,由于当前公司政策无法升级,p3k 等的建议不会被标记为接受,除非它是唯一的答案。)

0 投票
2 回答
80 浏览

coding-style - 为什么语言在语法上不更严格?

我浪费时间担心样式,例如间距,行缩进等。

我失去了适应项目之间不同风格的时间。

为什么语言在这方面变得灵活?为什么不要求非常严格的格式?

0 投票
2 回答
2855 浏览

python - 如何将 Pylint 与 Geany 集成,以便可以将 Geany 用作 python IDE?

http://michaeljaylissner.com/blog/using-pylint-in-geany#comments

该博客说将构建命令设置为

并设置自定义错误正则表达式

评论者建议使用命令

可以单击日志中的行号并由 geany 带到那里。我试过这个,它对我不起作用。

在我的项目文件中,我添加了

重新加载文件后,结果相同。我是否正确设置了error_regex?为什么这不起作用?

0 投票
1 回答
1113 浏览

django - pylint“disable-msg”注释注释的简写?

我在 Django 项目中使用 pylint,我发现自己经常复制粘贴这一行:
# pylint: disable-msg=E1101 因为 pylint 的工作方式

我对此很好,但如果我不必每次都复制粘贴它会更好。有什么方法可以定义快捷方式或其他东西吗?或者一般来说,你们是如何应对这个问题的?

0 投票
3 回答
6019 浏览

python - 对给定文件名递归地进行 Pylint

我有一个 Django 项目,我正在努力完成它。

我有几种情况,我希望能够递归地找到所有具有给定名称的文件并以不同的方式对它们进行分类(使用不同的选项)。例如,我想为 pylinting urls.py 和 admin.py 设置不同的选项

以下适用于 1 个目录..

但我想让那个*递归......以便它钻入子目录。

有什么方法可以实现吗?


更新 我还希望它们都作为单个 pylint 输出运行,而不是按顺序运行

0 投票
2 回答
2661 浏览

python - Django、Jenkins 和 PyLint 研究一切

我目前正在使用 pylint 运行 Jenkins CI,以查看我一直在从事的 Django 项目。我感到沮丧的一件事是我导入的所有中央 django 模块的 pylint 报告,这意味着我自己的项目文件被埋在其他 django 模块的堆中(例如 /usr/local/lib/python2.6/dist-packages/ django/contrib/admin/options.py,仅给出 67 次违规)。

有没有办法让它不那么不分青红皂白,只需查看与我的项目相关的文件,或者它是否总是必须通过所有导入进行递归?

谢谢,

Ĵ

0 投票
1 回答
889 浏览

vim - 如何在 Vim quickfix 中控制错误输出格式?

我使用了这个脚本 - http://www.vim.org/scripts/script.php?script_id=891 - 并通过添加到调用 pylint 的命令C行和更改错误格式行 RC0301R0202--include-ids\ y

够直截了当。但在错误输出中,我得到C 301的不是C0301. 这是一个小问题,但我仍然感到困惑 - 似乎没有办法正确显示这种错误标签。我在这里错过了什么吗?

在写作时,我还注意到它将E错误代码更改为error和。我如何控制一般的输出格式?它是硬编码的吗?Wwarning:clist