gpt4 book ai didi

Python 2 和 Python 3 双重开发

转载 作者:IT老高 更新时间:2023-10-28 22:12:35 25 4
gpt4 key购买 nike

我刚刚开始一个新的 Python 项目,理想情况下,我希望从一开始就提供 Python 2 和 3 支持,并且开发开销最小。我的问题是,对于全新的项目,最好的方法是什么?

我遇到过在其安装脚本中运行 2to3 甚至 3to2 的项目。这似乎是一种很常见的方式。但是,似乎有几种不同的方法可以做到这一点。我也遇到了Distribute .

还可以选择尝试编写多语言 Python 2/Python 3 代码。尽管这似乎是一个可怕的想法,但我注意到我最近倾向于编写比 Python 3 代码更惯用的代码,即使我仍然将它作为 Python 2 运行。我觉得这只会帮助我自己的过渡,当这一天终于到来了,但对于提供或至少帮助双重支持并没有多大作用。

我看到的大多数提供双重支持的项目都添加了对 Python 3 的支持,所以我特别好奇是否有更好的方法更适合新项目,您可以从中受益。

谢谢!

最佳答案

根据我的经验,这取决于项目的类型。

如果它是一个库或非常独立的应用程序,一个常见的选择是在 Python 2.7 中开发,尽可能避免在 Python 3.x 中弃用的结构,并借助自动化测试来识别 py2to3 留下的漏洞,您将不得不这样做手动修复。

另一方面,对于现实生活中的应用程序,准备好不断地偶然发现尚未移植到 py3k 的库(有时是重要的库)。大多数情况下,您别无选择,只能将库移植到 Python 3,所以如果您负担得起,那就去吧。通常我不能,这就是为什么我不支持这种项目的 Python 3(但我很难编写在合适的时候更容易移植的代码)。

对于 unicode 处理,我发现了 PyCon 2012 video信息量很大。该建议对 Python 2.x 和 3.x 都有好处:将来自外部的每个字符串视为字节,并尽快转换为 unicode,并尽可能晚地输出转换为字节的字符串。还有另一个关于 date/time handling 的信息非常丰富的视频.

[更新]

这是一个旧答案。 截至今天(2019 年),使用 Python 2.x 启动项目没有充分的理由,并且有几个令人信服的理由将旧项目移植到 Python 3.7+ 并放弃对 Python 2.x 的支持

关于Python 2 和 Python 3 双重开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11372190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com