* "Bernhard M. Wiedemann" <bernhard...@lsmod.de> [2021-01-04 12:48]: > This is not a timestamp issue, though. If those are varying, they are in > the header (first 12 bytes) of the .pyc. > > > │ 000000f0: 6d5a 0d62 6469 7374 5f77 696e 696e 7374 mZ.bdist_wininst > │ -00000100: 5a05 6368 6563 6b5a 0675 706c 6f61 644e Z.checkZ.uploadN > │ +00000100: da05 6368 6563 6b5a 0675 706c 6f61 644e ..checkZ.uploadN > > > I have seen this before and remember something about python string > reference counters being dumped into these pickle files and that varied > from ordering, so that > py_compile py1.py py2.py > produced different results than > py_compile py2.py py1.py > > One way to get reproducible results is to delete and recreate all .pyc > files with > find -type f -a -name "*.py" -print0 | > sort -z | > xargs -0 $python_binary -m py_compile > > > Maybe related: creating .pyc files on i586 and x86_64 (with identical > toolchain) always produced different results for me.
I was finally able to reproduce this on another machine. This particular difference is caused by whether the system has liblzma-dev installed or not (when Python is built). - Felix