如何查看Django版本

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

809943 次浏览

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

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

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

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

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

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

基本上与布考夫兰的回答相同,但在这里它是一个可执行命令:

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

如果你有pip,你也可以做一个点冻结 它将显示您的所有组件版本,包括Django。

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

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

如果您安装了应用程序:

$ django-admin --version
3.2.6

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

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

如果您希望在Unix/Linuxshell中使用单行执行此操作,请执行

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

开发应用程序后,您可以使用以下命令直接检查版本。

python manage.py runserver --version
>>> import django
>>> print(django.get_version())
1.6.1

我使用的是IDLE(Python GUI)。

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

./manage.py --version

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

cat __init__.py | grep VERSION

你会得到这样的东西:

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

对于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

解决方案是使用来自distutils的StrictVersion

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

如果您想进行Django版本比较,您可以使用django-nine(pip install django-9)。例如,如果您的环境中安装的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

我见过的最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版本,我同意与詹姆斯·布拉德伯里

>>> 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

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)

正如你所说,你有两个版本的Python,我假设它们在不同的虚拟环境(例如venv)或Conda环境中。

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

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

$ python --version

如果你想知道来源:

$ which python

并检查Django的版本:

$ python -m django --version

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

在Windows上的cmd上运行pip freeze

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

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

python-m django--version

如果安装了Django,你应该看到版本,否则你会得到一个错误,告诉“没有名为django的模块”。

在Python shell中键入以下命令

import django
django.get_version()

在django 1.0之后,你可以这样做

$ django-admin --version
1.11.10

有多种方法可以获得Django版本。您可以根据您的需要使用以下任何一种。

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


终端命令

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

Django Shell命令

  1. 导入django django.get_version() django.VERSION
  2. 从django.utils导入版本 version.get_version()ORversion.get_complete_version()
  3. 导入pkg_resources pkg_resources.get_distribution('django'). version

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

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

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

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)

Django版本或任何其他包版本

打开终端或命令提示符

类型

pip show django

pip3 show django

您可以找到任何包版本…

示例:

pip show tensorflow


pip show numpy

等等……

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

输入您的CMD或终端:

python -m django --version

转到Django项目的设置。在那里找到您的Django版本。

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

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

输入图片描述这是非常简单的打开CLI(命令行或任何IDE)无论你安装Python和Django只需键入,

django-admin--version

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

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


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

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


方法2-Django调试工具栏

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

django-debug工具栏版本

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

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

或者从你的终端你可以跑

django-admin --version

官方文档

第一:

python -m django --version

第二:

import django
print(django.get_version())