0

我是否能够配置 setup.py 然后通过 easy_install 安装 egg 以便它可以做某种模板或将版本号注入我的源文件之一?我有version = os.environ.get('BUILD_NUMBER', 0.1)setup.py我想把这个版本号放到一个源文件中,因为我需要一个版本号来运行一些东西。我不硬编码的原因是每次有新版本时版本号都会改变。

我想将此版本/内部版本号注入运行脚本 - 而不是 Python 文件。这个运行器脚本由easy_install 发送到/usr/local/bin。

4

1 回答 1

2

如果您的构建工具已经在生成构建号,为什么不让它在您的项目中填写模板 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(),
    ...
)
于 2013-11-11T19:21:53.903 回答