从setup.py文件中获取Python模块的版本号。

18 浏览
0 Comments

从setup.py文件中获取Python模块的版本号。

这个问题已经在这里有了答案

如果没有设置__version__变量,如何检查python包的版本

如何检查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日
0
0 Comments

在包内部的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

0