我今天在玩python打包。我想在我的软件包中填充__version__
关键字,但仅在pip install时填充。如果我在本地使用它,那么我希望该版本来自git describe
。所以我有这个:
def get_version():
"""
Get the version for the ground station. If the __version__.py exists, it uses the version in there. Otherwise
it uses the git describe version
"""
try:
from . import __version__
return __version__.__version__
except ImportError:
return get_git_tag()
def get_git_tag():
"""Return string of latest (annotated) git tag"""
version = subprocess.check_output(["git", "describe", "--dirty", "--long"]).decode()
version = version.rstrip()
return version
效果很好。但是我想确保__version__.py
仅存在于已发布的版本中,而不存在于我的工作仓库中,并且我不想冒__version__.py
泄漏到我的开发工作区中的风险。
因此,在这一点上,我正在研究在setup.py中创建文件的方法,该文件仅存在于我的软件包的发行版中。我这样做时有任何提示或警告吗?