2009-07-13 79 views
3

您可能知道Windows合规工具,它可以帮助人们知道任何版本的MS OS是否支持他们的代码。有没有办法知道我的代码支持哪些版本的Python?

我正在寻找类似于Python的东西。

我正在用Python 2.6编写一个库,我意识到它与Python 2.5不兼容,因为使用了with关键字。

我想知道是否有一种简单而自动的方式来避免将来出现这种情况。

我也对类似知道哪些操作系统支持感兴趣。

感谢您的帮助

+1

你写它。 **简单的方法**是知道你在做什么。 – SilentGhost 2009-07-13 08:22:43

回答

7

针对a previous question about this,我写pyqver。如果您有任何改进,请随时分享和贡献!

+1

令人敬畏的头发颜色为+1 – sqram 2009-07-13 08:25:56

+0

pyqver似乎是我正在寻找的工具。非常感谢你。 但是,我注意到我的脚本被认为与2.5兼容,但事实并非如此。 from __future__ import with_statement丢失。 “除as”也未被检测为与2.5兼容的问题。 我可以想象,处理所有情况都很复杂。 pyqver是一个很好的工具,我会尽力贡献并改进它,如果我可以的话 – luc 2009-07-13 09:30:50

6

我建议你使用自动化测试而不是代码分析工具。

请注意,Python标准库中存在细微的行为变化,您的代码可能依赖或可能不依赖。例如httplib:上传文件时,通常将数据设置为str。在Python 2.6中,可以为赋予流对象,而不是(对于大于1GB的文件有用),但是在Python 2.5中,您将遇到错误。

一套全面的单元测试和集成测试将更加可靠,因为他们测试你的程序实际上工作在Python版本为x.y

$ python2.6 tests/run_all.py 
................................. 
33 tests passed 
[OK] 

你是Python 2.6兼容的。

$ python2.4 tests/run_all.py 
...........EEE.........EEE....... 
27 tests passed, 6 errors 
[FAIL] 

的Python 2.4兼容。

0

的Python 2.5仍然可以保存,因为它可以用关键字的使用:

from __future__ import with_statement 
相关问题