从distutils的setup.py中获取版本信息

3 投票
2 回答
2825 浏览
提问于 2025-04-16 18:23

我该如何从setup.py文件中导入或读取版本号,以便在运行时记录这个版本?这样我就可以确保得到的结果是来自我这个特定版本的包。

以下是我的setup.py文件的内容(简化为只包含必要的部分)

import distutils.core
VERSION = '0.1.0'
LICENSE = 'GPLv2'
distutils.core.setup(**KWARGS)

当我尝试这样做时: import setup 我遇到了以下错误:

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

2 个回答

3

有一种方法可以从你的安装脚本中获取版本信息:

python setup.py --version

不过,我不太明白你说的“在运行时记录版本”是什么意思;因为安装脚本通常不会和你的模块一起安装,所以大家会用其他方法在代码中放一个版本号,比如在模块里加一个 __version__ 属性,或者在 __init__.py 文件中写上版本号。

0

在你的例子中,setup会自动执行,你需要把:

distutils.core.setup(**KWARGS)

替换成:

if __name__ == '__main__':
    distutils.core.setup(**KWARGS)

这样的话,setup只有在你真的运行setup.py的时候才会执行。

撰写回答