several questions有关将版本字符串转换为setup.py
的信息。我的要求略有不同:
1.2.3
)字符串和内部版本号($ git describe --tags --always HEAD
的结果)app.config['VERSION'] = '1.2.3'
和app.config['BUILD'] = '1.2.3-33-g93abc32'
setup.py
如果版本/构建字符串是under version control,我真的不在乎,虽然看起来该版本在那里是有意义的。
所以我想这个问题或许是如何从setup.py
向我的项目注入一些构建信息?
答案 0 :(得分:1)
我决定做的是滚动以下内容:
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__
行,但是现在看起来效果还不错。