如果您的构建工具已经在生成构建号,为什么不让它在您的项目中填写模板 version.py?
project/
project/__init__.py
project/version.py
其中 version.py 很简单:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__all__ = ('__version__',)
__version__ = $BUILD_NUMBER
这样,它始终可用,并且不依赖于 setup.py 元数据之类的东西。对于您的 setup.py 脚本,请尝试以下操作:
def get_version():
"""
Gets the latest version number out of the package,
saving us from maintaining it in multiple places.
"""
local_results = {}
execfile('project/version.py', {}, local_results)
return local_results['__version__']
setup(
name="Project",
version=get_version(),
...
)