在同一个脚本中使用两个不同版本的python

时间:2018-02-15 15:50:01

标签: python python-3.x python-2.7

我有两个代码块,我想将它们组合成一个python脚本。一个代码块用Python 2.7编写,另一个用Python 3.6编写

我的问题是,有没有办法调用旧版本的python mid脚本来运行特定的代码块?

例如,如果我运行以下代码,脚本会出错,因为第二个print语句缺少括号:

#Running python 2 and 3!!

#Py 2
print "Python 2"

#Py 3
print "Python 3"

注意:转换用2.7编写的代码块是可能的,但需要很长时间;我此刻没有的时间。

2 个答案:

答案 0 :(得分:2)

您可以在Python 3代码的单独进程中调用Python 2代码段(反之亦然)using the subprocess module。只有当您不希望Python上下文受到Python 2代码段的副作用影响时,这才有效。设置一个变量2,然后使用3就不可能了。

如果您想在Python 3脚本中使用Python 2代码段创建的对象,可以考虑使用pickle:将对象序列化为本地文件in Python 2.7并对其进行反序列化from Python 3 - 请注意pickle必须处理2到3之间的一些变化(见Unpickling a Python 2 object with Python 3)。

答案 1 :(得分:1)

为您节省时间: Automated Python 2 to 3 code translation

使用2to3为我创造了奇迹并且处理非常简单:

$ 2to3 example.py