是否有Python方式来获取导入模块的git标签

我有一个函数库(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的方式吗?

相关文章

Python中的函数(二) 在上一篇文章中提到了Python中函数的定...
Python中的字符串 可能大多数人在学习C语言的时候,最先接触...
Python 面向对象编程(一) 虽然Python是解释性语言,但是它...
Python面向对象编程(二) 在前面一篇文章中谈到了类的基本定...
Python中的函数(一) 接触过C语言的朋友对函数这个词肯定非...
在windows下如何快速搭建web.py开发框架 用Python进行web开发...