ChatGPT解决这个技术问题 Extra ChatGPT

如何检查 Django 版本

我必须为我们的应用程序使用 PythonDjango。所以我有两个版本的 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

b
bcoughlan

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

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

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

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

在检查版本之前先进入 env ,否则没有名为 django 的模块。
这说 - AttributeError: module 'django' has no attribute 'VERSION'
M
Md. Abu Nafee Ibna Zahid

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 开始工作
m
mahi_0707

如果您已安装应用程序:

$ 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
这在 2022 年适用于我,ubuntu 20.02,带有 Python 3.8 和 Django 4.0.2 的 virtualenv
P
Peter Mortensen

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

./manage.py --version

我喜欢这个,因为我们作为 Django 开发人员经常使用 manage.py 功能。你也可以使用'python manage.py version'(不需要--)
v
vishes_shell
>>> import django
>>> print(django.get_version())
1.6.1

我正在使用 IDLE(Python GUI)。


v
vinod yadav

如果您有 pip,您还可以执行

pip freeze

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

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

P
Peter Mortensen

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

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

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

$ python --version

如果你想知道来源:

$ which python

并检查 Django 的版本:

$ python -m django --version

C
Community

对于 Python

import sys
sys.version

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

import django
django.get_version()

简单检查版本的潜在问题是版本会升级,因此代码可能会过时。您要确保 '1.7' < '1.7.1' < '1.7.5' < '1.7.10'。在最后一次比较中,正常的字符串比较会失败:

>>> '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 >= (1, 8) 将始终按预期工作。
C
Community

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

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

终端命令

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

Django 外壳命令

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

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


V
Vishnu Kiran
django-admin --version
python manage.py --version
pip freeze | grep django

您需要使用 python manage.py --version 注意双 -
@Shawnzam 是的,当然是错字.. 非常感谢.. 答案已编辑
我需要在 Django 大写字母中创建 d 以便 grep 找到它。
第一个命令和第二个命令为我返回两个不同的版本号。
t
tfantina

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


完全没有理由对此予以否决,这是最简洁的答案之一。
P
Peter Mortensen

要使用 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

A
Anubhav Madhav

输入您的 CMD 或终端:

python -m django --version

P
Peter Mortensen

Django 版本或任何其他包版本

打开终端或命令提示符

类型

pip show django

或者

pip3 show django

您可以找到任何软件包版本...

例子:

pip show tensorflow

pip show numpy

ETC....


我最喜欢这个答案的简单性。 pip freeze 如果您在一堆包中点名,则会显示大量额外的废话。
P
Peter Mortensen

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

在 Windows 上的 cmd 上运行 pip freeze


G
George Cummins

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

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


P
Peter Mortensen

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)

A
Alex Babak

你也可以在没有 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
M
Mark White

在 django 1.0 之后你可以这样做

$ django-admin --version
1.11.10

J
Javier Buzzi

我见过的获取任何软件包版本的最 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

F
Flair

官方文档

第一的:

python -m django --version

第二:

import django
print(django.get_version())

A
Artur Barseghyan

如果要进行 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

A
Amit Baderia

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

python -m django --version

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


B
Baishakhi Dasgupta

在 Python shell 中键入以下命令

import django
django.get_version()

P
Peter Mortensen

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)

S
Sonia Rani

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

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

k
kirankumar

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

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

O
Oluwafemi Tairu

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

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

或从您的终端,您可以运行

django-admin --version

M
Manukumar

https://i.stack.imgur.com/N0OrF.png

django-admin--版本

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


F
Frank

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

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

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

方法 2 - Django 调试工具栏

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

https://i.stack.imgur.com/zCefb.png