python字节码兼容性
问题内容:
发行版之间python字节码在何种程度上兼容。我不是在说python2.x到python3.x,而是说… Python33到python34?
我不是为了“安全性”而使用它,而是使用Cython将程序的大部分转换为C,但是我确实使用pyc文件作为存储一些常量的方法,并且pyc是可取的,因为它提供了一种不容易的文件格式非官方地改变了。如果有人要更改某些内容,可以通过内部程序提出要求
这样的pyc文件仅包含stf python中的Int,float,list,dict,string变量。一个类,但它更多地充当容器/结构。
这是一个大的否还是这是尝试一下,因为正在存储一些非常基本的python字节码数据
问题答案:
Python不保证版本之间的字节码兼容性。不要依赖它
实际上,pyc文件以一个魔幻数字开头,该数字在每次编组代码执行时都会更改,而python会检查该数字的兼容性。由于此代码几乎每个版本都会更改,因此幻数也是如此。有关详细信息,请参见Ned
Batchelder的博客条目
。
有更好的方法来确保文件不被篡改:例如,校验和。