支持不同版本的Python

Ram*_*hum 9 python compatibility multiple-versions python-3.x

这个问题一直困扰着我.

对于我的Python项目,我希望能够支持Python版本2.4到3.1.我想了一下如何做到这一点,并最终决定为四个不同版本的Python提供四个独立的源代码分析:2.4,2.5,2.6和3.1.

我认为这是一个糟糕的决定,主要是因为Python的分配烦恼,我现在必须做四次而不是一次.

问题是,该怎么办?

我的项目是在科学计算领域.我的印象是仍然有很多人依赖Python 2.4.

有人建议我只写2.4我的整个项目,但这对我来说是不可接受的.这意味着我无法使用上下文管理器,这是我不会放弃的.

普通的Python项目如何支持2.4?他们避免使用上下文管理器吗?

另外,有没有选择,但有一个单独的Python 3.1的分支?我知道在2.x和3.x上运行相同的代码有各种各样的黑客攻击,但我喜欢Python的原因之一是因为代码很漂亮,而且我不会容忍使用兼容性黑客来使它变得难看.

拜托,请给我你的意见.

Mau*_*uve 1

是的,您需要编写 Python 2.4 语法以支持同一代码库中的所有 2.4 - 2.7。

Python 2.6 和 2.7 中的一些更改旨在使编写与 3.x 兼容的代码变得更容易,但您必须放弃对 2.5 及更低版本的支持才能做到这一点。