如何检查Django的版本

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

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

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

如果你想检查Django版本,打开Python控制台并input

 import django django.VERSION 

基本上和bcoughlan的答案一样,但是这里是一个可执行的命令:

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

如果你已经安装了应用程序:

 django-admin.py version 

转到您的Django项目主目录,然后执行:

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

我正在使用IDLE (Python GUI)。

对于Python :

 import sys sys.version 

对于Django(正如其他人所提到的):

 import django django.get_version() 

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

 >>> '1.7.5' < '1.7.10' False 

解决scheme是从distutils使用StrictVersion 。

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

在命令提示符下键入以下内容:

 django-admin.py version 

如果安装了django,它会打印当前的版本(例如1.6.5 ),
否则shell会打印一条错误信息。

如果你有点子 ,你也可以做一个

 点冻结 

它会显示你的Django版本。

你可以通过grep来获取Django版本。 那是,

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

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

当你安装Django时,它可能只在一个环境中。 有可能你有两个不同版本的Django,每个版本的Python都有一个版本。

从Unix / Macterminal,你可以检查你的python版本如下:

 $ python --version 

如果你想知道来源:

 $ which python 

并检查django的版本:

 $ python -m django --version 

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

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

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

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

转到控制台并input:

 django-admin --version 

django中有一个未公开的utils版本模块

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

有了这个,你可以得到正常版本的string或一个详细的版本元组:

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

在LINUX TERMINAL上运行pip list并在列表中findDjango及其版本

在Windows上的cmd上运行pip freeze

你也可以不用Python。 只需在你的Django目录中input:

 cat __init__.py | grep VERSION 

你会得到像这样的东西:

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

我认为最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版本,我同意@jamesdradbury

 >>> 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版本比较,你可以使用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 

如果你正在虚拟环境中工作,只要点击冻结会告诉你,如果不是你可以使用这个

 django-admin --version