您为生产开发工作(以及为什么)标准化了什么版本的Python(2.4,2.5,2.6,3.0)?

StackOverflow https://stackoverflow.com/questions/812085

在我们的小组中,我们主要进行搜索引擎架构和内容集成工作,大部分代码库都在Python中。我们所有的构建工具和Python模块依赖项都在源代码控制中,因此可以检查它们并加载环境以供使用而不管os / platform,类似于方法 virtualenv 使用。

多年来,我们一直保持与Python 2.3兼容的代码库,因为我们使用的商业产品之一取决于Python 2.3。多年来,这导致了越来越多的问题,因为新的工具和库需要更新版本的Python,因为2.3在2004年出现。

我们最近将构建环境与商业产品环境的依赖关系分离,并且可以使用我们想要的任何版本的Python(或Java)。大约一个月左右,因为我们将Python 2.6标准化为Python的最新版本,该版本向后兼容以前的版本。

Python 3.0不是一个选项(目前),因为我们必须迁移太多的代码库才能使我们的构建和集成工具再次正常工作。

我们喜欢Python 2.6的许多新功能,特别是改进的模块和类装饰器之类的东西,但是我们依赖的许多模块会导致Python 2.6解释器出现各种折旧警告。我们对管理EC2云集群节点感兴趣的另一个工具,主管甚至不起作用正确使用Python 2.6。

现在我想知道我们是否应该现在标准化Python 2.5,而不是在开发生产环境工具时使用Python 2.6。我们想要/需要的大多数工具似乎都可以在Python 2.5中正常运行。我们正试图在Python 2.6特性或模块存在许多依赖之前对其进行排序。

非常感谢!

- 迈克尔

有帮助吗?

解决方案

我不会因为弃用警告而放弃2.6;那些会随着时间的推移而消失。 (您可以使用Python解释器的 -W ignore 选项来防止它们被打印出来,至少)但是如果您需要使用的模块实际上不能与Python 2.6一起使用,那将是保持2.5的合理理由。 Python 2.5现在广泛使用,可能会持续很长时间(考虑到2.3已经持续了多长时间!),所以即使你使用2.5,你也不会被迫升级一段时间。

我将Python 2.5用于我的所有开发工作,但仅仅因为它是Gentoo(Linux)的软件包存储库中可用的版本。当Gentoo维护者声明Python 2.6“稳定” * 时,我将切换到那个。当然,这种推理不一定适用于你。

* Python 2.6实际上是稳定的,因为在Gentoo中没有声明它是因为Gentoo依赖于其他程序,这些程序本身依赖于Python并且尚未升级到2.6。同样,这种推理可能不适用于你。

其他提示

我的公司在2.5中标准化。和你一样,我们不能百万转换到3.0,但我非常希望我们可以升到2.6。

日常编码我将查看文档,我会找到我想要的模块或功能,但它会有一点注释:版本2.6中的新功能

我会说最新版本,如果你弹出折旧警告(可能会很少),那么只需找到一个更好的方法来做到这一点。总体而言,2.6的代码会更好。

对我而言,坚持使用python 2.5+是最重要的,因为它正式支持 ctypes ,这改变了许多插件系统。

虽然您可以找到与2.3 / 2.4一起使用的ctypes,但它们并未正式捆绑。

所以我的建议是2.5。

我们现在坚持使用2.5.2。我们的技术堆栈以Django为中心(但我们还有十几个其他位和bob。)所以我们接近他们的工作。

我们不得不回到docutils到0.4,所以它适用于epydoc 3.0.1。到目前为止,这不是一个大问题,但它可能 - 在某些时候 - 使我们重新考虑使用epydoc。

2.6升级是我们发展计划的一部分。我们现在有预算,但没有固定的时间表。

同样,3.0升级是我提醒人们的。我们必须为此预算。除非Django跃升至3.0,否则今年我们不会这样做。我们明年可能会这样做。

我认为最好的解决方案是放弃对整体统一性的希望,尽管有一个共同的环境是值得努力的。您将始终面临版本问题,例如升级到下一个最佳解释器版本时。

因此,不要在每个问题基础上处理它,而是通过仔细查看发布管理来解决此问题。

不是发布源代码,而是使用平台依赖二进制文件(除了源代码分发)。

所以你要做的就是定义一些支持的CPU,例如: x86-32,x86-64,sparc

然后是哪个操作系统: Linux,Windows,Solaris,FreeBSD

对于每个操作系统,您支持许多主要版本。

下一步是你为所有人提供二进制文件。

是的确这需要相当多的基础设施投资并从您的存储库中建立自动构建(您确实拥有它们吗?)。

优点是您的用户只需安装“一件”,您可以轻松切换版本甚至混合版本。实际上,您甚至可以使用这种方法使用不同的编程语言,而不会过多地影响您的发布管理。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top