从setup.py文件中获取Python模块的版本号。
从setup.py文件中获取Python模块的版本号。
这个问题已经在这里有了答案:
我正在编写基于Flask的模块,并在根目录下使用标准的setup.py:
#!/usr/bin/env python from distutils.core import setup setup(name=modulename, version='0.2.16.dev0', description='...', author='...', ... )
我想通过Flask API公开模块版本。 以编程方式访问自己的模块版本的正确方式是什么?
谢谢
更新:
我忘了提到该模块不一定按照标准模块安装,并且可能不在PYTHONPATH中可用。 这就是为什么这个问题不像这个和这个。
admin 更改状态以发布 2023年5月21日
在包内部的version.py
或__version__.py
文件中放置版本信息,并在setup.py
和应用程序中都导入它:
from distutils.core import setup from mypackage.version import version setup(… version=version, … )
如果在setup.py
中导入您的包会产生不必要的副作用,您可以只读取mypackage/version.py
并对其进行解析,或使用exec()
或单独导入它(而不使用包):
from imp import load_source from os.path import abspath, dirname, join versionpath = join(abspath(dirname(__file__)), "mypackage", "__version__.py") load_source("mapackage_version", versionpath) from mapackage_version import version