我有一个函数库(krypton
),最近我将其移到了自己的Python 3.7站点包中(在C:\ProgramData\Anaconda3\Lib\site-packages\krypton
中)。我想使用git标记跟踪软件包的版本号,因为它在执行软件包时形成输出的一部分。我正在使用GitPython来做到这一点。
因此,我需要以可靠的方式找到krypton
代码所在的目录,以便将其传递给GitPython Repo()
方法,否则将导入脚本的CWD将被使用。
到目前为止,我是
import krypton
directory = os.path.split(krypton.__file__)[0]
repo = git.Repo(directory)
__sha__ = repo.head.object.hexsha
tags = repo.tags
if tags:
__version__ = repo.tags[-1].name
else:
__version__ = "unknown"
所以我要在其内部导入krypton.py。哪个感觉不对,但是哪个似乎可以正常工作。我应该有更优雅/可靠/ Pythonic的方式吗?