如何检查 Django 版本

Posted

技术标签:

【中文标题】如何检查 Django 版本【英文标题】:How to check Django version 【发布时间】:2011-09-22 01:00:33 【问题描述】:

我必须为我们的应用程序使用Python 和Django。所以我有两个版本的 Python,2.6 和 2.7。现在我已经安装了 Django。我可以运行示例应用程序来成功测试 Django。但是如何确定 Django 使用的是 2.6 还是 2.7 版本以及 Django 使用的模块版本是什么?

【问题讨论】:

最短路径 - python3 -m django --version 在我的安装中 python3 无法识别。这有效:python -m django --version 我相信,由于 MacOS 系统上预装了一个有点旧的 Python 版本,因此“python”命令需要后缀“3”,以避免操作系统方面混淆使用哪个版本。这在 Windows 系统上不是必需的,因此 @AnttiA 的解决方案可以正常工作。 另一种最短的方法是django-admin --version 【参考方案1】:

Django 1.5 支持 Python 2.6.5 及更高版本。

如果您在 Linux 下并想检查您正在使用的 Python 版本,请从命令行运行 python -V

如果要查看 Django 版本,请打开 Python 控制台并键入

>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)

【讨论】:

在检查版本之前先进入 env,否则没有名为 django 的模块。 请记住,正如@EngineSense 所指出的,大家要进入虚拟环境。我落入了同样的陷阱。谢谢。【参考方案2】:

Django 将使用 PYTHONPATH 环境变量指定的 Python 版本。您可以在 shell 中使用echo $PYTHONPATH 来确定将使用哪个版本。

Django使用的模块版本将是安装在PYTHONPATH指定的Python版本下的模块版本。

【讨论】:

【参考方案3】:

与bcoughlan's answer基本相同,但这里是作为可执行命令:

$ python -c "import django; print(django.get_version())"
2.0

【讨论】:

结合 Brady Emerson 和 bcoughlan:python -c "import django; print(django.VERSION)" 返回 (1, 8, 5, 'final', 0) 你应该改用python -c "import django; print(django.__version__)"。它还返回'2.2.4'(它是just a call to get_version())并且是大多数其他库遵循的标准,因为它是defined in PEP 8。它从Django 1.8 开始工作【参考方案4】:

如果你有pip,你也可以做一个

点冻结
它将显示您的所有组件版本,包括 Django 。

您可以通过 grep 管道获取 Django 版本。也就是说,

josh@villaroyale:~/code/djangosite$ pip freeze | grep Django
Django==1.4.3

【讨论】:

【参考方案5】:

如果您已安装应用程序:

$ django-admin --version
3.2.6

【讨论】:

截至 2018 年 5 月(我再次测试此答案的日期),尽管我安装了 2.0.1,但它显示版本为 1.11.5。但是 python shell 中的>> django.VERSION 显示正确的版本 这对我有用:ubuntu 18.04,带有 P 3.6 和 Django 2.2 的 virtualenv 对于旧版本,它是django-admin.py --version。根据您完成 python 安装的方式,您甚至可能需要python django-admin.py --version【参考方案6】:

要使用 Python shell 进行检查,请执行以下操作。

>>>from django import get_version
>>> get_version()

如果你希望在 Unix/Linux shell 中使用一行代码,那么就这样做

python -c 'import django; print(django.get_version())'

一旦你开发了一个应用程序,你就可以直接使用下面的方法来检查版本。

python manage.py runserver --version

【讨论】:

【参考方案7】:
>>> import django
>>> print(django.get_version())
1.6.1

我正在使用IDLE(Python GUI)。

【讨论】:

【参考方案8】:

转到您的 Django 项目主目录并执行以下操作:

./manage.py --version

【讨论】:

我喜欢这个,因为我们作为 Django 开发人员经常使用 manage.py 功能。你也可以使用'python manage.py version'(不需要--)【参考方案9】:

您也可以在没有 Python 的情况下做到这一点。只需在你的 Django 目录中输入:

cat __init__.py | grep VERSION

你会得到类似的东西:

VERSION = (1, 5, 5, 'final', 0)

【讨论】:

当您不想激活虚拟环境只是为了获取值,或者您正在使用 AWS Elastic Beanstalk 之类的东西并且无法激活虚拟环境时,这非常有用。 @rjferguson 你不需要激活你的环境来做一个pip freeze / python -c "import <module>; <module>.VERSION"。你可以简单地引用它:/path/to/env/bin/python -c "<command>" 或者如果你想安装/使用 pip,同样的东西:/path/to/env/bin/pip freeze。我一直都在使用它,特别是当我以 root 身份登录并且我的所有应用程序代码都以www-data 运行时,我这样做:sudo su www-data -c "/path/to/env/bin/pip install <module>",甚至不眨眼。 (我知道这是将近 2 年后的事了,你现在可能知道了——这对下一个人来说更重要) > 没有 Python >> python -c【参考方案10】:

对于Python:

import sys
sys.version

对于 Django(正如其他人在这里提到的):

import django
django.get_version()

简单检查版本的潜在问题是版本会升级,因此代码可能会过时。您要确保 '1.7'

>>> '1.7.5' < '1.7.10'
False

解决方法是使用StrictVersion from distutils。

>>> from distutils.version import StrictVersion
>>> StrictVersion('1.7.5') < StrictVersion('1.7.10')
True

【讨论】:

如何使用django.VERSION,它已经作为一个元组出现了?我很确定 django.VERSION &gt;= (1, 8) 将始终按预期工作。【参考方案11】:

如果要进行 Django 版本比较,可以使用django-nine (pip install django-nine)。例如,如果您的环境中安装的 Django 版本是 1.7.4,则以下情况为真。

from nine import versions

versions.DJANGO_1_7 # True
versions.DJANGO_LTE_1_7 # True
versions.DJANGO_GTE_1_7 # True
versions.DJANGO_GTE_1_8 # False
versions.DJANGO_GTE_1_4 # True
versions.DJANGO_LTE_1_6 # False

【讨论】:

【参考方案12】:

我见过的获取 any 包版本的最 Pythonic 方式:

>>> import pkg_resources;
>>> pkg_resources.get_distribution('django').version
'1.8.4'

这与 setup.py 直接相关:https://github.com/django/django/blob/master/setup.py#L37

还有distutils比较版本:

>>> from distutils.version import LooseVersion, StrictVersion
>>> LooseVersion("2.3.1") < LooseVersion("10.1.2")
True
>>> StrictVersion("2.3.1") < StrictVersion("10.1.2")
True
>>> StrictVersion("2.3.1") > StrictVersion("10.1.2")
False

关于获取python版本,我同意with James Bradbury:

>>> import sys
>>> sys.version
'3.4.3 (default, Jul 13 2015, 12:18:23) \n[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]'

将它们捆绑在一起:

>>> StrictVersion((sys.version.split(' ')[0])) > StrictVersion('2.6')
True

【讨论】:

【参考方案13】:

在 Django 中有一个未记录的 utils 版本模块:

https://github.com/django/django/blob/master/django/utils/version.py

这样,您可以将普通版本作为字符串或详细版本元组:

>>> from django.utils import version
>>> version.get_version()
... 1.9
>>> version.get_complete_version()
... (1, 9, 0, 'final', 0)

【讨论】:

【参考方案14】:

正如您所说,您有两个版本的 Python,我假设它们位于不同的 virtual environments(例如 venv)或 Conda environments。

当您安装 Django 时,它可能只在一个环境中。您可能有两个不同版本的 Django,每个版本对应一个 python。

在 Unix/Mac 终端中,您可以按如下方式检查您的 Python 版本:

$ python --version

如果你想知道来源:

$ which python

并检查 Django 的版本:

$ python -m django --version

【讨论】:

【参考方案15】:

Linux 终端 中运行 pip list 并在列表中找到 Django 及其版本:

在 Windows 上的 cmd 上运行 pip freeze

【讨论】:

【参考方案16】:
django-admin --version
python manage.py --version
pip freeze | grep django

【讨论】:

你需要使用python manage.py --version注意双- @Shawnzam 是的,当然是错字.. 非常感谢..答案已编辑【参考方案17】:

您可以通过在 shell 提示符下运行以下命令来获取 django 版本

python -m django --version

如果安装了 Django,你应该会看到版本,否则你会得到一个错误提示“No module named django”。

【讨论】:

【参考方案18】:

在 Python shell 中键入以下命令

import django
django.get_version()

【讨论】:

【参考方案19】:

在 django 1.0 之后你可以这样做

$ django-admin --version
1.11.10

【讨论】:

【参考方案20】:

有多种方法可以获取 Django 版本。您可以根据自己的要求使用以下任何一种。

注意: 如果您在虚拟环境中工作,请加载您的 python 环境


终端命令

    python -m django --version django-admin --versiondjango-admin.py version ./manage.py --versionpython manage.py --version pip freeze | grep Django python -c "import django; print(django.get_version())" python manage.py runserver --version

Django Shell 命令

    import django django.get_version()django.VERSION from django.utils import version version.get_version()version.get_complete_version() import pkg_resources pkg_resources.get_distribution('django').version

(如果您有某种更正或想要添加更多相关信息,请随时修改此答案。)

【讨论】:

【参考方案21】:

您可以导入 django,然后键入下面给出的打印语句以了解 django 的版本,即安装在您的系统上:

>>> import django
>>> print(django.get_version())
2.1

【讨论】:

【参考方案22】:

Django 版本支持的 Python 版本

Django version        Python versions
----------------------------------------
1.0                   2.3, 2.4, 2.5, 2.6
1.1                   2.3, 2.4, 2.5, 2.6
1.2                   2.4, 2.5, 2.6, 2.7
1.3                   2.4, 2.5, 2.6, 2.7
1.4                   2.5, 2.6, 2.7
1.5                   2.6.5, 2.7 and 3.2.3, 3.3 (experimental)
1.6                   2.6.5, 2.7 and 3.2.3, 3.3
1.11                  2.7, 3.4, 3.5, 3.6, 3.7 (added in 1.11.17)
2.0                   3.4, 3.5, 3.6, 3.7
2.1, 2.2              3.5, 3.6, 3.7

要验证 Python 是否可以看到 Django,请在 shell 中键入 python。然后在 Python 提示符下,尝试导入 Django:

>>> import django
>>> print(django.get_version())
2.1
>>> django.VERSION
(2, 1, 4, 'final', 0)

【讨论】:

【参考方案23】:

Django 版本或任何其他包版本

打开终端或命令提示符

类型

pip show django

pip3 show django

你可以找到任何包版本...

例子:

pip show tensorflow

pip show numpy

等等……

【讨论】:

我最喜欢这个答案的简单性。 pip freeze 显示大量额外的废话,如果你已经 pip'd 在一堆包中。【参考方案24】:

只需输入python -m django --version 或输入pip freeze 即可查看已安装模块的所有版本,包括Django。

【讨论】:

没有理由对此被否决,这是最简洁的答案之一。【参考方案25】:

输入你的 CMD 或终端:

python -m django --version

【讨论】:

【参考方案26】:

进入 Django 项目的设置。在那里找到你的 Django 版本。

【讨论】:

【参考方案27】:

打开您的 CMD 或终端并运行以下任意命令

django-admin --version
        or
python3 -m django --version
        or
pip freeze

【讨论】:

【参考方案28】:

在安装python和Django的任何地方打开CLI(命令行或任何IDE)非常简单,只需键入,

django-admin --version

看到这里我已经在我的系统中安装了最新的 Python 和 Django,结果如图所示。

【讨论】:

【参考方案29】:

还有两种方法可以获取(Django 和其他包的)版本。 他们都需要一个 version 变量来获取包的版本。 根据PEP-396,应该为每个 Python 模块设置 __version__ 变量。


方法 1 - 从文件系统获取版本

考虑到这一点,您就知道如何获取几乎每个 Django/Python 包的版本。查看包根目录的 __init__.py 内部。 因此,如果您能够快速浏览文件系统,这可能是一种非常通用的方式来获取站点包(虚拟环境)中任何包的版本。


方法 2 - Django 调试工具栏

有一个非常有用的工具叫做django debug toolbar。 如果您使用它(非常推荐用于 Django 开发),您可以列出所有具有 package.__version__ 的应用程序的版本。

【讨论】:

【参考方案30】:

从您的代码中,您可以使用以下两种方法中的任何一种来获取 Django 的版本。

import django
print(django.__version__)
# '3.1.5'
print(django.VERSION)
# (3, 1, 5, 'final', 0)

或者从你的终端,你可以运行

django-admin --version

【讨论】:

以上是关于如何检查 Django 版本的主要内容,如果未能解决你的问题,请参考以下文章

django 如何知道创建项目/应用程序的版本

查看Django和flask版本

查找旧项目的 django 版本号

第三方Django REST框架申请

Django 框架的推荐 python 版本是啥? [关闭]

Django如何安装指定版本