繁体   English   中英

我们可以在python 3.5下运行旧版python 2.7代码吗?

[英]Can we run legacy python 2.7 code under python 3.5?

我想升级到python 3.5,但我使用的是旧版python 2.7软件包。 在python 3.5中运行旧版软件包是否容易? 我一直觉得这并不容易,但是我进行了几次搜索以查看我是否错了,并没有提出太多建议。

我希望有一个多处理程序包,该程序包允许在3.5代码和2.7程序包之间进行标准化的切换,从而使它们可以在自己的环境中独立运行,但对开发人员而言却是无缝的。

我不是在谈论将自己的代码转换为3.5,而是在谈论我使用的不会为我自己更新的库。

如果您使用2.7支持的更新的语法,例如围绕异常,和/或更好的是,使用了从__future__导入的新功能, __future__代码转换为Python 3的时间要轻松得多(最多无需进行任何更改) 。 我建议先走这条路,因为它可以逐渐踩踏,而无需突然跳转到Python 3。

我想具有不同版本的Python进程可以互操作,因为对象酸洗格式是兼容的,并且您可以在两边显式使用特定的酸洗协议版本来确保这一点。 不过,我认为双方的multiprocessing程序包都不会有用。 考虑使用例如ZeroMQ作为更通用的解决方案。

不幸的是,在3.5下没有完美的或自动的方式来处理2.7代码(效果很好)。

您提到过,您担心的是库,而不是自己的代码-首先,希望它们如果正在积极开发中,则将对其进行更新。 如您所言,如果没有,则可能是为了将来证明而编写的。 我发现一些不错的工具(例如google-api-python-client,例如https://github.com/google/google-api-python-client/blob/master/setup.py )。

如果不这样做,升级的唯一方法就是自己修复所有语法更改。 我最常处理的是“打印”和异常处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM