如何在运行时检查Django中已安装应用程序的版本?

tot*_*ico 2 django

我基本上需要知道它安装和添加到的特定应用程序的版本

INSTALLED_APPS = (
    ...
    'the_application',
    ...
)
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用pip冻结.我知道当前虚拟环境中的应用程序版本.

问题是我想支持两个版本的the_application.

像settings.INSTALLED_APP ['the_application'].get_version()这样的东西就是我要找的......

Ngu*_*aga 6

模块/应用程序通常会通过模块级__version__属性公开其版本.例如:

import gunicorn
print gunicorn.__version__ # Prints version

import haystack
print haystack.__version__ 
Run Code Online (Sandbox Code Playgroud)

一些警告是有序的:

  • 不保证; 校验
  • 应用程序将公开其版本的"格式"将有所不同.例如,上面的第一张印刷品印'0.15.0'在我的测试系统上; 第二个印(2, 0, 0, 'beta')在同一个系统上.