从distutils setup.py获取版本

问题描述

| 如何从setup.py文件导入或读取VERSION,以便可以在运行时记录版本。 通过这种方式,我可以确保获得的结果是从此特定版本的软件包中获得的。 以下是我的setup.py文件内容(简化为具有必要的部分)
import distutils.core
VERSION = \'0.1.0\'
LICENSE = \'GPLv2\'
distutils.core.setup(**kwargs)
当我尝试做时:     导入设置 我收到以下错误
distutils.core.setup(**kwargs)
usr/lib/python2.6/distutils/core.pyc in setup(**attrs)
        ok = dist.parse_command_line()
    except distutilsArgError,msg:
        raise SystemExit,gen_usage(dist.script_name) + \"\\nerror: %s\" % msg

    if DEBUG:

SystemExit: 

error: no commands supplied
    

解决方法

在您的示例中,安装程序是自动执行的,您必须替换:
distutils.core.setup(**KWARGS)
与:
if __name__ == \'__main__\':
    distutils.core.setup(**KWARGS)
这样,只有在您实际运行setup.py时才执行安装程序     ,有一种方法可以从安装脚本中获取版本:
python setup.py --version
但是我不确定我理解“在运行时记录版本”是什么意思;安装脚本通常未随模块一起安装,因此人们可以使用其他方式在其代码中放置版本号,例如模块中的“ 5”属性或文件“ 6”。