一个Python项目可以同时使用2.x和3.x代码吗?

5
我将要开始一个长期(约1年)的Python编程项目。我想使用wxPython作为我的GUI(支持2.6版本),但我也想在项目的其余部分中使用3.1版本(以开始使用3.x语法)。
是否有任何方法可以设计一个混合2.x和3.x模块的项目?还是我应该咬紧牙关,只使用2.x(首选,因为我真的想学习wxPython)或3.x?
谢谢,
Mike

2to3 工具可以将你的 Python 2 代码转换为 Python 3。为什么要“混合”使用两个版本呢?为什么不直接编写 Python 2 代码并进行转换呢? - S.Lott
一个(初学者的)直觉告诉我,如果2.x到3.x的转换像2to3一样容易,所有大型库都会在2to3发布当天完成它。像wxPython背后那些(更有成就的)程序员尚未移植他们的库,这让我认为即使对于像我的项目这样基本的东西,翻译也是具有挑战性的。 - MikeRand
啊,好的观点。非常感谢。谢谢。 - MikeRand
1
@S.Lott:结合使用wxPython(2.x)+学习新语法(3.x)的能力 @dan04:有趣,谢谢 - MikeRand
@Begbie00:你想要在Python 2中实现某些东西并学习Python 3的语法吗?同时进行?这就是你所谓的“混合”吗? - S.Lott
显示剩余3条评论
3个回答

5
您应该使用Python 2.7(预计在未来几天发布候选版本),它非常接近Python 3.1,并且可以处理不使用过时功能的代码。有一个适用于Python 2.7的最新版本wxpython。 在wxpython获得3.1-3.2版本后,转换代码应该不会太痛苦。 尽管如此,wxpython还是没有过渡期限:-(
另一个选择是使用pyQt,它已经为Python 3.1构建了版本。

+1 对于pyQt。 pyQt 目前还有一个优势,就是在Mac OS X上更容易获取(可以通过Fink获得,而wxPython则不行)。 - Eric O. Lebigot

3

Python 2和3并没有太大的区别。如果你已经学好了Python 2,那么用几分钟就可以熟悉Python 3。官方建议使用Python 2.6(当前版本)并尝试向前兼容。由于目前几乎没有受欢迎的包被翻译成Python 3,因此Python 3目前不适合用于大型项目。但是Python 2和3的开发将在相当长的时间内并行进行,因此如果不使用Python 3,您不会失去太多。您可以使用“__future__”模块导入许多语法特性(Unicode字符串文字、除法、print函数、绝对导入),标准库仍然基本相同。因此,我建议使用Python 2。


从今天的角度来看,这是一个糟糕的建议 ;) - lunesco

2
混合使用wxPython(2.x)和学习新语法(3.x)的能力。

不要“混合使用”。

先写Python 2,让它正常工作。

单独尝试Python 3,不要“混合使用”。

当各种包和模块在Python 3中可用时,使用2to3转换来创建Python 3。你会遇到一些小问题。修复Python 2,使你的包可以在Python 2中工作并且在转换后也可以工作。

然后,你可以放弃对Python 2的支持,专注于Python 3。

不要“混合使用”。


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