验证Python包结构的工具?

时间:2013-06-11 05:03:20

标签: python python-3.x

我不久前开始编写Python代码,一切正常,但我一直在编写程序包时遇到问题。我想知道是否有“包验证工具”这样的东西。我知道,我可以启动一个REPL并开始导入模块但是......有更好的方法吗?是否有工具可以告诉我“你有这些可能的错误”?

或许中间还有一些东西:有没有办法测试Python的包结构?

一如既往,提前谢谢!

2 个答案:

答案 0 :(得分:1)

如果您使用以下方式调用模块:

python -m module

Python将加载/执行模块,因此您应该捕获粗略的语法错误。此外,如果模块有一个块,如:

if __name__ = "__main__":
    do_something()

它将被调用。对于一些小型自包含模块,我经常使用此块来运行测试。

鉴于Python非常动态,如果模块作者没有使用TTD,则很难检查其是否正确。这里没有银弹。有些工具会检查“code smells”并遵守标准(动态语言往往会产生大量linters)。

如果您喜欢IDE,那么像PyCharm这样的好IDE可以提供帮助。

这些工具可以提供帮助,但仍远不能保证静态语言,编译器可以在编译时捕获许多错误。例如,Go似乎被设计为具有非常迂腐的编译器。据说Haskell程序就像数学证明一样。

如果您来自具有强大编译时检查的语言,请放松一下。语言是一种“砸墙,看它是否坚持”。一些Python“男子气概”原则:

答案 1 :(得分:0)

没有工具来测试包结构本身,我不确定要测试什么。几乎任何结构都是有效的结构......

但是,如果您要分发模块,有一些工具可以帮助您测试软件包数据,它们可能很有用:

我安装了它们,并使用zest.releaser,它也有一些基本的健全性检查。但是这些都不会检查代码是否正常,因此它不会查找__init__文件,例如。