Answers:
Django 1.5支持Python 2.6.5和更高版本。
如果您使用的是Linux,并且要检查使用的Python版本,请从命令行运行python -V
。
如果要检查Django版本,请打开Python控制台并输入
>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)
基本上与bcoughlan的答案相同,但是在这里,它作为可执行命令:
$ python -c "import django; print(django.get_version())"
2.0
python -c "import django; print(django.VERSION)"
回归 (1, 8, 5, 'final', 0)
python -c "import django; print(django.__version__)"
改为这样做。它还返回'2.2.4'
(只是对的调用get_version()
),并且是大多数其他库遵循的标准,因为它是在PEP 8中定义的。它的工作原理,因为Django的1.8
如果您已安装该应用程序:
$ django-admin.py version
2.0
>> django.VERSION
在python shell中显示了正确的版本
对于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.VERSION
,那已经是元组了呢?我很确定这样做django.VERSION >= (1, 8)
总是可以按预期进行。
有多种获取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
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
(如果您有某种更正或想添加更多相关信息,请随意修改此答案。)
django-admin --version
python manage.py --version
pip freeze | grep django
python manage.py --version
Note double-
pip list
在LINUX TERMINAL上运行,并在列表中找到Django及其版本
pip freeze
在Windows上的cmd上 运行
您也可以不用Python就可以做到。只需在Django目录中输入以下内容即可:
cat __init__.py | grep VERSION
你会得到类似的东西:
VERSION = (1, 5, 5, 'final', 0)
pip freeze
/ python -c "import <module>; <module>.VERSION"
。您可以简单地引用它:/path/to/env/bin/python -c "<command>"
或者,如果您想安装/使用pip,则可以使用:/path/to/env/bin/pip freeze
。我一直在使用它,特别是当im以root身份登录并且我的所有应用程序代码都按我的方式运行时www-data
:sudo su www-data -c "/path/to/env/bin/pip install <module>"
甚至不眨眼。(我知道这将近2年了,您现在可能已经知道了-这对于下一个家伙来说更多)
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)
Django版本或任何其他软件包版本
打开终端或命令提示符
类型
pip show django
要么
pip3 show django
您可以找到任何软件包版本...
示例
pip show tensorflow
pip show numpy
等等....
pip freeze
如果您打包了一堆,就会显示大量的废话。
输入您的CMD或终端:
python -m django --version
我认为最Python化的方式是:
>>> import pkg_resources;
>>> pkg_resources.get_distribution('django').version
'1.8.4'
这直接与setup.py相关联: https //github.com/django/django/blob/master/setup.py#L37
这绝对是获得ANY软件包版本号的最佳方法!
也有 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,然后按如下所示键入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)
python3 -m django --version