如何检查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