每当我安装我的模块时,我想包含我的源代码的 MD5 哈希。为此,我将哈希放在 setuptools.setup 的描述字段的末尾:
import subprocess
cmd="/sbin/md5 mymodule/*.py | md5 "
p=subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
hash=p.stdout.read().strip().decode()
print(hash)
from setuptools import setup
setup(name='mymodule',
version='0.1',
packages=['mymodule', ],
description = "My awesome Module. \nsourcehash="+hash+"\n",
)
然后在我的__ init __ .py 中,我包括:
import os.path
with open(os.path.split(__file__)[0]+'/../EGG-INFO/PKG-INFO', 'r') as f:
pkg_info=f.read()
__sourcehash__ = pkg_info.split('sourcehash=')[1][:32]
这行得通,但感觉很hacky。有一个更好的方法吗?谢谢!