Как проверить версию Django

425

Мне нужно использовать Python и Django для нашего заявление. Поэтому у меня есть две версииPython, 2.6 и 2.7. Теперь я установилDjango. Я могу запустить образец приложения для тестированияDjango succesfuly. Но как я могу убедиться, чтоDjango использует версию 2.6 или 2.7 и какую версию модулей используетDjango?

  • 15
    Кратчайший путь - python3 -m django --version - python3 -m django --version
  • 2
    В моей установке python3 не распознается. Это работает: python -m django --version
Теги:

25 ответов

521
Лучший ответ

Django 1.5 поддерживает Python 2.6.5 и более поздние версии.

Если вы работаете в Linux и хотите проверить версию Python, которую вы используете, запустите python -V из командной строки.

Если вы хотите проверить версию Django, откройте консоль Python и введите

>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)
  • 11
    Для альтернативно отформатированного вывода можно выполнить print(django.get_version()) которая будет возвращать что-то вроде 1.6.5 EDIT: я только что заметил, что это было сказано MTech ниже.
  • 0
    большинство модулей имеют .__version__ чтобы PEP имел его последовательно, а не .VERSION и .get_version() которые я видел только для django.
Показать ещё 2 комментария
316

По сути, это то же самое, что и ответ bcoughlan, но здесь это как исполняемая команда:

$ python -c "import django; print(django.get_version())"
2.0
  • 22
    Это гораздо удобнее, чем ответ с наибольшим количеством голосов. Благодарю.
  • 3
    Это самый элегантный ответ на сегодняшний день!
Показать ещё 1 комментарий
164

Если вы установили приложение:

$ django-admin.py version
2.0
  • 3
    Хотел бы я снова подтвердить этот ответ. Намного проще, чем переходить на консоль Python ...
  • 10
    Аналогично, python manage.py version также работает.
Показать ещё 2 комментария
79

Перейдите в свой Django домашний каталог проекта и выполните:

./manage.py --version
  • 3
    Почему это не лучший ответ, я не могу себе представить.
  • 0
    Проголосовал за то, что КОРОТКИЙ и ПРОСТОЙ ответ.
45
>>> import django
>>> print(django.get_version())
1.6.1

Я использую IDLE (графический интерфейс Python).

34

Для 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

Решение состоит в использовании StrictVersion из distutils.

>>> from distutils.version import StrictVersion
>>> StrictVersion('1.7.5') < StrictVersion('1.7.10')
True
  • 1
    Как насчет использования django.VERSION , который уже поставляется в виде кортежа? Я уверен, что выполнение django.VERSION >= (1, 8) всегда будет работать как задумано.
33

Введите в командной строке следующее:

django-admin.py version

Если django установлен, он распечатает текущую версию (например, 1.6.5),
иначе оболочка выведет сообщение об ошибке.

  • 1
    Это самое простое решение вопроса.
  • 1
    репост одного ответа выше
Показать ещё 1 комментарий
31

Если у вас pip, вы также можете сделать

pip freeze
и он покажет вашу версию Django.

Вы можете передать его через grep, чтобы получить только версию Django. То есть

josh@villaroyale:~/code/djangosite$pip freeze | grep Django
Django==1.4.3
  • 1
    Не у всех есть pip - другие решения ниже, использующие python или manage.py, лучше.
  • 1
    В ТАК никогда не описывайте ответы «ниже», потому что они часто становятся ответами «выше» :)
26

Как вы говорите, у вас есть две версии python, я предполагаю, что они находятся в разных виртуальных средах (например, venv) или, возможно, среды conda.

Когда вы установили django, это было возможно только в одной среде. Возможно, у вас есть две разные версии django: по одной для каждой версии python.

В терминале Unix/Mac вы можете проверить свою версию python следующим образом:

$ python --version

Если вы хотите узнать источник:

$ which python

И проверить версию django:

$ python -m django --version
11

Есть разные способы получить версию Django. Вы можете использовать любое из приведенных ниже в соответствии с вашими требованиями.

Примечание: если вы работаете в виртуальной среде, пожалуйста, загрузите вашу среду Python


Терминальные команды

  1. python -m django --version
  2. django-admin --version или django-admin.py version
  3. ./manage.py --version или python manage.py --version
  4. pip freeze | grep Django
  5. python -c "import django; print(django.get_version())"
  6. python manage.py runserver --version

Команды оболочки Django

  1. import django django.get_version() ИЛИ django.VERSION
  2. from django.utils import version version.get_version() ИЛИ version.get_complete_version()
  3. import pkg_resources pkg_resources.get_distribution('django').version

(Не стесняйтесь изменять этот ответ, если у вас есть какие-то исправления или вы хотите добавить дополнительную информацию.)

10
django-admin --version
python manage.py --version
pip freeze | grep django
  • 0
    они все работают просто отлично
  • 0
    Вам нужно будет использовать python manage.py --version Обратите внимание на двойной -
Показать ещё 1 комментарий
8

Перейдите в консоль и введите:

django-admin --version

ОБНОВИТЬ

В последнее время я заметил, что правильным способом будет перейти к оболочке Python и проверить версию там:

$ python
>> import django
>> django.VERSION
  • 1
    Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий под своим постом.
  • 0
    @ UwePlonus Еще раз посмотрите на другие ответы и скажите мне, насколько они отличаются от моих, что делает их подходящим ответом.
Показать ещё 1 комментарий
8

Для проверки использования оболочки Python выполните следующие действия.

>>>from django import get_version
>>> get_version()

Если вы хотите сделать это в оболочке Unix/Linux с одной строкой, выполните

python -c 'import django; print(django.get_version())'

Как только вы разработали приложение, вы можете проверить версию напрямую, используя следующие.

python manage.py runserver --version
5

запустите pip list на LINUX TERMINAL и найдите Django и его версию в списке

запустить pip freeze на cmd в Windows

5

Django будет использовать версию Python, указанную переменной окружения PYTHONPATH. Вы можете использовать echo $PYTHONPATH в оболочке, чтобы определить, какая версия будет использоваться.

В версиях модулей, используемых Django, будут версии модулей, установленные в версии Python, заданной PYTHONPATH.

4

В 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)
4

Вы можете сделать это и без Python. Просто введите это в свой каталог Django:

cat __init__.py | grep VERSION

И вы получите что-то вроде:

VERSION = (1, 5, 5, 'final', 0)
  • 0
    Это замечательно, если вы не хотите активировать виртуальную среду только для получения значения или используете что-то вроде AWS Elastic Beanstalk и не можете активировать виртуальную среду.
  • 1
    @rjferguson: вам не нужно активировать свою среду, чтобы pip freeze / python -c "import <module>; <module>.VERSION" . Вы можете просто сослаться на него: /path/to/env/bin/python -c "<command>" или, если вы хотите установить / использовать pip, то же самое: /path/to/env/bin/pip freeze . Я использую это все время, особенно когда я вошел в систему как root, и весь мой код приложения работает как www-data я делаю: sudo su www-data -c "/path/to/env/bin/pip install <module>" И даже не моргай. (я знаю, что это почти 2 года спустя, и вы, наверное, знаете об этом сейчас - это больше для следующего парня)
Показать ещё 1 комментарий
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

Это определенно лучший способ получить номер версии ЛЮБОГО пакета!

Также существует 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
2

После django 1.0 вы можете просто сделать это

$ django-admin --version
1.11.10
2

Введите следующую команду в оболочке Python

import django
django.get_version()
2

Если вы хотите сделать сравнение версий 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
1

Если вы работаете в виртуальной среде, просто зависание pip скажет вам, не можете ли вы использовать этот

django-admin --version
0

Версия 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

Чтобы убедиться, что Django может видеть Python, введите python из вашей оболочки. Затем в приглашении Python попытайтесь импортировать Django:

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

Вы можете импортировать django, а затем ввести команду print, как указано ниже, чтобы узнать версию django, т.е. установленную в вашей системе:

>>> import django
>>> print(django.get_version())
2.1
0

Вы можете получить версию django, выполнив следующую команду в приглашении оболочки

python -m django -version

Если Django установлен, вы должны увидеть версию, иначе вы получите сообщение об ошибке "Нет модуля с именем django".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню