gpt4 book ai didi

django - Django 应用程序中的版本号

转载 作者:行者123 更新时间:2023-11-28 19:36:07 26 4
gpt4 key购买 nike

我正在开发一个 Django 应用程序,我想显示应用程序的版本(以便发现错误的人知道应用程序的版本并可以提供更好的错误报告)。

是否有一种普遍接受的方式在 Django 中存储版本号(我指的是我的应用程序的版本,而不是 Django)?

最佳答案

我一直在寻找这个完全相同的问题,并找到了您的问题。你接受的答案我不太满意。

我正在使用 django debugtoolbar,您还可以在其中显示所用应用程序的所有版本。我想知道如何让我的自定义应用程序的版本也显示在那里。

再往前看,我发现了这个问题和答案: How to check the version of a installed application in Django in running time?

但是这个答案并没有告诉我把这个 __version__

放在哪里

所以我查看了一个打开的应用程序,它确实显示在 django 工具栏中。我查看了 django restframework 代码,在那里我发现了:

版本放在__init__.py文件中

(参见 https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/init.py)

它被放在这里:

__version__ = '2.2.7'
VERSION = __version__ # synonym

在此之后,在他的 setup.py 中,他从这个 __init__.py 得到这个版本:参见:https://github.com/tomchristie/django-rest-framework/blob/master/setup.py

像这样:

import re

def get_version(package):
"""
Return package version as listed in `__version__` in `init.py`.
"""
init_py = open(os.path.join(package, '__init__.py')).read()
return re.match("__version__ = ['\"]([^'\"]+)['\"]", init_py).group(1)

version = get_version('rest_framework')

使用 buildout 和 zestreleaser 时:

顺便说一句,我正在使用 buildout 和 zest.releaser 进行构建和版本控制。

在这种情况下,上面有点不同(但基本相同的想法):

参见 http://zestreleaser.readthedocs.org/en/latest/versions.html#using-the-version-number-in-setup-py-and-as-version

setup.py 中的版本由 setup.py 自动编号,因此在 __init__.py 中你可以:

import pkg_resources

__version__ = pkg_resources.get_distribution("fill in yourpackage name").version
VERSION = __version__ # synonym

关于django - Django 应用程序中的版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14590292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com