有several questions关于将版本字符串放入 setup.py
中。我有一组略有不同的要求:
- 我需要版本(例如
1.2.3
)字符串和内部版本号($ git describe --tags --always HEAD
的结果) - 我需要在我的 Flask 应用程序中提供这些版本(例如
app.config['VERSION'] = '1.2.3'
和app.config['BUILD'] = '1.2 .3-33-g93abc32'
- 我需要
setup.py
中提供的版本字符串
我并不关心版本/构建字符串是否为 under version control ,尽管看起来该版本在那里是有意义的。
所以我想问题也许是如何从 setup.py
将一些构建信息注入(inject)到我的项目中?
最佳答案
我决定采取以下措施:
setup.py
:
# Stuff
import subprocess
__version__ = '1.2.3'
__build__ = subprocess.check_output('git describe --tags --always HEAD'
.split()).decode().strip()
with open('mypkg/_version.py', 'w') as f:
f.write('''\
# I will destroy any changes you make to this file.
# Sincerely,
# setup.py ;)
__version__ = '{}'
__build__ = '{}'
'''.format(__version__, __build__))
# other stuff
settings.update(
version=__version__,
# more stuff
)
我可能会使用 re
模块来简单地查找/替换 __version__
和 __build__
行,但目前看来效果很好.
关于python - 如何将版本/构建信息添加到我的项目和 setup.py 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26367360/