python字节码兼容性

时间:2014-03-17 08:18:50

标签: python bytecode

版本之间python字节码的兼容程度。 我不是在谈论python2.x到python3.x但是说... Python33到python34?

我不是因为'安全'而使用Cython将程序的大部分转换为C,但是我确实使用pyc文件作为存储一些常量的方法而pyc是优选的,因为它提供的文件格式不是不容易非正式地改变。如果有人想要改变某些内容,他们可以通过内部程序请求

这样的pyc文件只包含变量 在stf python中的Int,float,list,dict,string。 一个类,但它更像是一个容器/结构。

这是一个很大的问题,或者这是一个尝试,看看是否存储了一些非常基本的python字节码数据

1 个答案:

答案 0 :(得分:4)

Python不保证版本之间的字节码兼容性。不要依赖它。

实际上,一个pyc文件以一个幻数开始,每次编组代码都会改变,而python会检查这个数字是否兼容。由于此代码几乎每个版本都会发生变化,因此幻数也是如此。有关详细信息,请参阅Ned Batchelder's blog entry

有更好的方法可以确保您的文件无法被篡改:例如,校验和。