是否有一种Pythonic方法来获取导入模块的git标记
我有一个函数库(是否有一种Pythonic方法来获取导入模块的git标记,python,git,import,Python,Git,Import,我有一个函数库(krypton),最近我把它移植到了自己的Python 3.7站点包中(在C:\ProgramData\Anaconda3\Lib\site packages\krypton)。我希望使用git标记跟踪包的版本号,因为它在包执行时构成输出的一部分。我正在使用GitPython来实现这一点 因此,我需要以可靠的方式找到krypton代码所在的目录,以便将其传递给GitPythonRepo()方法,否则将使用导入脚本的CWD 到目前为止,我得到的是 import krypton di
krypton
),最近我把它移植到了自己的Python 3.7站点包中(在C:\ProgramData\Anaconda3\Lib\site packages\krypton
)。我希望使用git标记跟踪包的版本号,因为它在包执行时构成输出的一部分。我正在使用GitPython来实现这一点
因此,我需要以可靠的方式找到krypton
代码所在的目录,以便将其传递给GitPythonRepo()
方法,否则将使用导入脚本的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本身。这感觉不对,但似乎还可以。是否有一种更优雅/可靠/通灵的方法可以做到这一点?我相信您可以通过使用
inspect
获取库本身的路径来跳过重新导入。我在里面发现了一些东西