我需要发布 python 脚本的编译版本,并能够证明(使用哈希)编译文件确实与原始文件相同。
到目前为止我们使用的是一个简单的:
find . -name "*.py" -print0 | xargs -0 python2 -m py_compile
问题是这是不可重现的(不确定波动因素是什么,但两次执行不会为同一个 python 文件提供相同的 .pyc)并迫使我们始终发布相同的编译版本,而不是能够将构建脚本提供给任何人以生成新的编译版本。
有什么办法可以实现吗?
谢谢
最佳答案
编译的 Python 文件包括一个四字节的魔数(Magic Number)和四字节的编译日期时间。这可能是您看到的差异的原因。
如果您从校验和过程中省略了字节 5-8,那么您应该看到给定版本的 Python 的常量校验和。
.pyc
文件的格式在 this blog post 中给出。由 Ned Batchelder 着。
关于python - python 中的可重现构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39471960/