当前使用的Python版本和应该支持哪些包?

3
作为一个小型的Python包编写者(cobs, simplerandom),我想知道我应该支持哪些Python版本。
我听说企业级服务器上仍在使用Python 2.5。因此,我认为在2011年,最老的需要实际支持的版本是2.5。
然而,我看到了this blog,其中作者说他仍在使用2.4。从记忆中,我还看到了一封PyCrypto邮件列表中的邮件,说他们希望尽可能保持向后兼容到2.2。
当然,还有Python 3.x,它正在慢慢地发展壮大。了解谁在使用它将是很好的。
此外,还有Jython和Ironpython,对它们我知之甚少。

是否有任何具体且最新的Python安装/使用数据可供我们了解?是否有任何“最佳实践”或其他建议,指导包编写人员应支持哪些版本/类型的Python?

3个回答

5
我认为这是在开发任何软件时都存在的问题。任何人都可能在运行任何版本,需要支持该版本(我想知道有多少人仍在使用Windoze ME?)。就个人而言,在开发库时,我只会支持当前版本及以上版本。如果没有其他原因,因为我只是一个人,没有团队。
话虽如此,我会将我的软件包放在github上,并从希望获得先前版本支持的任何人那里接受补丁(并愿意付出努力)。
编辑:
我发现软件开发(特别是软件包)的一个好规则是“只为所需开发,不为你认为可能需要的开发”。换句话说,让它适用于你正在运行的Python版本(或最亲近的版本),然后根据需要接受支持请求,如果您想自己实现它们。

感谢您的积极参与。回应另一个答案中的评论...关于“需要”,我猜这些软件包可能不会很受欢迎,但我正在猜测[可能沉默的]潜在用户的“需求”。 - Craig McQueen
易于理解的(需求收集)。但是,在开始之前为什么要增加你的工作量和扩大你的软件包范围呢?在我看来,最好有一个非常狭窄的重点,构建一个稳健的API/软件包,然后在此基础上支持其他版本(如果这甚至成为必要)。 - Demian Brecht

2

我有一些运行Python 2.3的服务器。:-)

但是,你不需要支持它。大多数这样的服务器只是在运行,并且不会安装任何新模块。

如果今天要创建一个新模块,则应支持2.6、2.7、3.1和3.2版本。对于现有模块,您可以询问您的用户。 :-)


1

你应该支持最新的2.x系列(目前为2.7)和3.x(目前为3.2)。除非你有支持旧版本的特定需求,否则我认为你不需要去那里。

至于像IronPython和Jython这样的替代实现,只有在必要时才应该这样做。为所有这些实现支持你的应用程序可能耗时(虽然可能具有教育意义)。

作为一个附注,为了在多个版本/实现的Python上测试你的应用程序,我建议使用tox


谢谢,也感谢提供 tox 的参考。在我的情况下,我不是在谈论一个应用程序,而是一些 Python 包(我将在我的问题中编辑链接)。至于“需要”,我想这些包不会非常流行,但我正在尝试猜测[可能是沉默的]潜在用户的“需求”。 - Craig McQueen
大多数情况下使用的是2.7,其次是3.2。你应该(现实地)从这些版本开始,如果必要,再“移植”到其他版本。 - Noufal Ibrahim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接