从setup.py中检索python模块自己的版本

时间:2017-08-30 11:28:39

标签: python flask distutils

我正在根据目录中的标准setup.py编写基于Flask的模块:

#!/usr/bin/env python
from distutils.core import setup

setup(name=modulename,
      version='0.2.16.dev0',
      description='...',
      author='...',
      ...
     )

我愿意使用Flask API公开模块版本。以编程方式访问我自己的模块版本的正确方法是什么?

谢谢

更新 我忘了提到模块没有必要作为标准模块安装,可能在PYTHONPATH中不可用。这就是为什么这个问题与thisthis

不同的原因

1 个答案:

答案 0 :(得分:0)

将版本放入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()或单独导入它(没有软件包): p>

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