如何从3.x为2.x编译python代码

如何从3.x为2.x编译python代码,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我想从3.2脚本中编译目标2.7的python代码 下面的代码适合编译。但在执行时,我显然会得到一个“错误的幻数错误”,因为编译和目标python版本是不同的 for fn in os.listdir(source): srcfile = ... ... destfile = ... + ".pyc" #print(srcfile, destfile) py_compile.compile(srcfile, destfile) # <-- o

我想从3.2脚本中编译目标2.7的python代码

下面的代码适合编译。但在执行时,我显然会得到一个“错误的幻数错误”,因为编译和目标python版本是不同的

for fn in os.listdir(source):
    srcfile = ...
    ...
    destfile = ... + ".pyc"
    #print(srcfile, destfile)
    py_compile.compile(srcfile, destfile)   # <-- 
os.listdir中fn的
(源代码):
srcfile=。。。
...
destfile=…+“.pyc”
#打印(srcfile,destfile)

py_compile.compile(srcfile,destfile)#CPython二进制文件不能为不同的Python版本交叉编译。您最好使用一个具有所需目标版本的Python解释器,并直接从命令行使用该模块。

CPython二进制文件不能为不同的Python版本交叉编译。最好是使用目标版本的Python解释器,并直接从命令行使用模块。

函数、模块(如and等)。所有这些都只需公开烘焙到每个Python版本中的解析器和编译器。Python 3.2没有针对2.7代码的编译器

如果您希望将3.2代码编译成2.7字节码……一般来说,这甚至是不可能的,所以显然Python3.2无法做到这一点

您可以尝试将所有2.7编译器机器移植到Python PyPy,这将是一个很好的源代码,可以从中开始,然后在3.2下运行。但是,为了避免在3.2的同时安装Python 2.7,这需要做大量的工作。

函数、像and这样的模块等都只需公开每个Python版本中烘焙的解析器和编译器。Python 3.2没有针对2.7代码的编译器

如果您希望将3.2代码编译成2.7字节码……一般来说,这甚至是不可能的,所以显然Python3.2无法做到这一点


您可以尝试将所有2.7编译器机器移植到Python PyPy,这将是一个很好的源代码,可以从中开始,然后在3.2下运行。但这是一项大量的工作,只是为了避免在3.2旁边安装Python 2.7。

为什么要这样做?Python 2.7被嵌入到C++产品中。但构建过程存在于3.2中。现在,必须编译产品附带的python代码(2.7),以便最终用户不容易阅读/更改它。希望答案。这不回答为什么你不想叉到Python 2.7。在没有构建Python 2.7的情况下,如何构建嵌入式C++产品?@ SAMBHA:“代码”> Python 27。DLL<代码>,或者用于构建嵌入式应用程序的头文件和配置文件。如果不是来自Python 2.7?为什么要这样做?Python 2.7被嵌入到C++产品中。但构建过程存在于3.2中。现在,必须编译产品附带的python代码(2.7),以便最终用户不容易阅读/更改它。希望答案。这不回答为什么你不想叉到Python 2.7。在没有构建Python 2.7的情况下,如何构建嵌入式C++产品?@ SAMBHA:“代码”> Python 27。DLL<代码>,或者用于构建嵌入式应用程序的头文件和配置文件。如果不是来自Python2.7,那么从3.2派生出2.7似乎是唯一的解决方案。从3.2派生出2.7似乎是唯一的解决方案。