python字节码兼容性

Nai*_*aib 4 python bytecode

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

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

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

这是一个很大的问题还是尝试看看正在存储一些非常基本的python字节码数据

Dan*_*man 6

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

事实上,一个 pyc 文件以一个幻数开始,这个幻数在每次编组代码执行时都会改变,python 会检查这个数字以确保兼容性。由于此代码几乎在每个版本中都会发生变化,因此幻数也是如此。有关详细信息,请参阅Ned Batchelder 的博客条目

有更好的方法来确保您的文件没有被篡改:例如校验和。