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


当前回答

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

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

其他回答

Python版本由Django版本支持

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,输入Python from你的shell。然后在Python提示符下,尝试导入Django:

>>> import django
>>> print(django.get_version())
2.1
>>> django.VERSION
(2, 1, 4, 'final', 0)

官方文档

第一:

python -m django --version

第二:

import django
print(django.get_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

还有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版本,我同意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

在CMD或终端中输入:

python -m django --version

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

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

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

$ python --version

如果你想知道来源:

$ which python

检查Django的版本:

$ python -m django --version