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


当前回答

官方文档

第一:

python -m django --version

第二:

import django
print(django.get_version())

其他回答

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


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

了解了这一点,你就知道如何获取几乎所有Django/Python包的版本了。查看包根目录的__init__.py。 因此,如果您在文件系统中导航速度很快,这可能是获得站点包(虚拟环境)中任何包的版本的一种非常通用的方法。


方法2 - Django调试工具栏

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

django-admin --version
python manage.py --version
pip freeze | grep 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)

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

在Windows下执行cmd命令pip freeze。