How to check Django version
我必须在我们的应用程序中使用python和django。所以我有两个版本的python,2.6和2.7。现在我已经安装了django。我可以运行示例应用程序来成功测试django。但是,如何确保django使用的是2.6或2.7版本,以及django使用的是什么版本的模块?
Django1.5支持python2.6.5及更高版本。
如果您使用的是Linux,并且想要检查您使用的Python版本,请从命令行运行
如果要检查django版本,请打开一个python控制台并键入
1 2 3 | >>> import django >>> django.VERSION (2, 0, 0, 'final', 0) |
基本上与bcoughlan的答案相同,但这里是一个可执行命令:
1 2 | $ python -c"import django; print(django.get_version())" 2.0 |
如果已安装应用程序:
1 2 | $ django-admin.py version 2.0 |
转到Django项目主目录并执行以下操作:
1 | ./manage.py --version |
1 2 3 | >>> import django >>> print(django.get_version()) 1.6.1 |
我正在使用空闲(python-gui)。
如果你有PIP,你也可以做
1 | pip freeze |
它会显示你的django版本。
你可以通过管道通过grep来获得django版本。也就是说,
1 2 | josh@villaroyale:~/code/djangosite$ pip freeze | grep Django Django==1.4.3 |
Python:
1 2 | import sys sys.version |
对于Django(如其他人所述):
1 2 | import django django.get_version() |
简单检查版本的潜在问题是版本得到升级,因此代码可能过时。要确保"1.7"<"1.7.1"<"1.7.5"<"1.7.10"。正常字符串比较在上次比较中失败:
1 2 | >>> '1.7.5' < '1.7.10' False |
解决方案是使用distutils中的strictversion。
1 2 3 | >>> from distutils.version import StrictVersion >>> StrictVersion('1.7.5') < StrictVersion('1.7.10') True |
在命令提示下键入以下内容:
1 | django-admin.py version |
如果安装了django,它将打印当前版本(如
正如您所说,您有两个版本的python,我假设它们位于不同的虚拟环境(例如venv)或可能是conda环境中。
安装Django时,可能只在一个环境中。可能有两个不同版本的django,每个版本的python都有一个。
在Unix/Mac终端中,可以按如下方式检查python版本:
1 | $ python --version |
如果你想知道来源:
1 | $ which python |
要检查Django的版本:
1 | $ python -m django --version |
有多种方法可以获得django版本。根据您的要求,您可以使用下面给出的任何一个。
注意:如果您在虚拟环境中工作,请加载您的python环境。
终端命令django shell命令
django.get_version()
version.get_version()
pkg_resources.get_distribution('django').version
(如果您有某种更正或希望添加更多相关信息,请随意修改此答案。)
1 2 3 | django-admin --version python manage.py --version pip freeze | grep django |
转到控制台并键入:
1 | django-admin --version |
更新
最近我注意到,正确的方法是转到python shell并检查那里的版本:
1 2 3 | $ python >> import django >> django.VERSION |
要使用python shell进行检查,请执行以下操作。
1 2 | >>>from django import get_version >>> get_version() |
如果您希望在UNIX/Linux shell中用一行代码来完成此操作,请执行以下操作:
1 | python -c 'import django; print(django.get_version())' |
一旦开发了一个应用程序,就可以使用下面的代码直接检查版本。
1 | python manage.py runserver --version |
Django将使用pythonpath环境变量指定的python版本。您可以在shell中使用
Django使用的模块版本将是在pythonpath指定的python版本下安装的模块版本。
在Linux终端上运行
在Windows上的命令上运行
Django中有一个未记录的utils版本模块
https://github.com/django/django/blob/master/django/utils/version.py
通过它,您可以得到字符串形式的普通版本或详细的版本元组:
1 2 3 4 5 | >>> from django.utils import version >>> version.get_version() ... 1.9 >>> version.get_complete_version() ... (1, 9, 0, 'final', 0) |
你也可以不用Python来做。只需在django目录中键入:
1 | cat __init__.py | grep VERSION |
你会得到如下信息:
1 | VERSION = (1, 5, 5, 'final', 0) |
我觉得最刺激的方式是:
1 2 3 | >>> import pkg_resources; >>> pkg_resources.get_distribution('django').version '1.8.4' |
这直接与setup.py联系在一起:https://github.com/django/django/blob/master/setup.py_l37
这绝对是获取任何软件包版本号的最佳方法!
还有EDOCX1[4]
1 2 3 4 5 6 7 | >>> 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 |
至于
1 2 3 4 | >>> import sys >>> sys.version '3.4.3 (default, Jul 13 2015, 12:18:23) [GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]' |
把它们绑在一起:
1 2 | >>> StrictVersion((sys.version.split(' ')[0])) > StrictVersion('2.6') True |
在python shell中键入以下命令
1 2 | import django django.get_version() |
在django 1.0之后,你就可以这样做了。
1 2 | $ django-admin --version 1.11.10 |
如果要对django版本进行比较,可以使用
1 2 3 4 5 6 7 8 | 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 |
如果您在虚拟环境中工作,pip freeze会告诉您是否可以使用它。
1 | django-admin --version |
通过在shell提示下运行以下命令,可以获得django版本
python-m django——版本
如果安装了django,您应该看到该版本,否则会得到一个错误消息"没有名为django的模块"。
只需在命令提示下运行
django-admin.py version
您可以导入django,然后按如下所示键入print statement以了解系统上安装的django版本:
1 2 3 | >>> import django >>> print(django.get_version()) 2.1 |
Django版本支持的python版本
1 2 3 4 5 6 7 8 9 10 11 | 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:
1 2 3 4 5 | >>> import django >>> print(django.get_version()) 2.1 >>> django.VERSION (2, 1, 4, 'final', 0) |