什么是Python的全面皮棉跳棋?

我听说有几个工具可以让你检查代码中常见的Python错误,比如pylint和pyflakes。 我正在寻找一个全面,正确和简单的集成到一个构build(setup.py最好或buildbot,如果有充分的理由)。

你build议哪一个?为什么?

Python有几个linttypes的程序:

  • pyflakes – parsing,非常适合查找NameErrors,过时的导入
  • pylint – parsing,非常全面(在过度强迫的一面)。
  • pep8 – parsing,一个样式检查器。
  • flake8 – parsing器,结合pep8和pyflakes,增加了复杂性支持,可扩展。
  • pychecker – 执行(小心)

所有这些都帮助我find了小问题,并有其优缺点。 这里也有很多讨论。

这个问题太广泛了,所以我只列出我的工具链FWIW。

编辑

emacs + python-mode + flymake + ropemacs。

flymake在编辑文件时运行一个进程,进程可以是任何东西。 我有flymakeconfiguration火pyflakes和pep8。 所以我得到的pep8侵犯,语法错误,未使用的import,variables声明,但未使用等文件中的迹象…

绳索是方便的跳过声明和一点自动完成。 它还会显示文档和function签名等

我相信vim也有类似的东西。 虽然我的一个同事还没有成功运行,但是我被告知wingide可以使用pyflakes和pep8。

testing

鼻子+各种插件。 在我的emacs中,我绑定F7(编译)运行鼻子,这样我得到一个缓冲区,我可以跳转到错误,然后跳转到源代码中的那一行。

版本控制

我用mercurial。

依赖

buildout或virtualenv或两者兼而有之。 取决于项目。 使用你的项目最好的。 我忍受了,因为我现在开发了appengine,而且我更喜欢appengine应用程序结构的appengine monkey方法,但是这只是我。

如果我没有开发appengine,我可能会坚持virtualenv。

持续集成

jenkins是我设置的最简单的。 基本上它运行我使用我的编译命令相同的testing套件,但也生成一个覆盖率报告。

我认为了解现在的情况,能够根据自己所从事的项目的需要进行变革,这比寻找“最好的”解决scheme要好,主要是因为最好的解决scheme并不存在。