3

我们需要检查自制 python 包的 md5sum,实际上是从生成的*.whl文件中获取它。问题是每次构建时 md5sum 都会发生变化,即使源代码没有变化。我们还在第三方包(即 django-celery)上对此进行了测试,并获得了相同的行为。

所以问题是:

  1. 如果我们不更改源代码有什么不同?
  2. 是否有可能为相同的 python 构建获得相同的 md5sum?

更新。

为了说明这个问题,我收到了关于两个 django-celery 构建的两份报告。构建内容校验和完全相同(第 4 列),但 *.whl 文件本身的校验和不同。

报告链接:

https://www.dropbox.com/s/0kkbhwd2fgopg67/django_celery-3.1.17-py2-none-any2.htm?dl=0 https://www.dropbox.com/s/vecrq587jjrjh2r/django_celery-3.1.17 -py2-none-any1.htm?dl=0

4

1 回答 1

1

引用相关的 PEP

轮子是具有特殊格式的文件名和.whl扩展名的 ZIP 格式存档。

ZIP 存档保留每个文件的修改时间。

Wheel 存档不仅包含源代码,还包含在创建存档时动态生成的其他文件和目录。因此,即使您不接触 Python 源代码,轮子仍然会包含具有不同修改时间的内容。


解决此问题的一种方法是解压缩轮子并计算内容的校验和。

于 2015-12-23T14:52:23.760 回答