Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一种Pythonic方法来获取导入模块的git标记_Python_Git_Import - Fatal编程技术网

是否有一种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
代码所在的目录,以便将其传递给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本身。这感觉不对,但似乎还可以。是否有一种更优雅/可靠/通灵的方法可以做到这一点?

我相信您可以通过使用
inspect
获取库本身的路径来跳过重新导入。我在里面发现了一些东西