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

547

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

maheshgupta024
источник
50
Кратчайший путь -python3 -m django --version
Aniket Тхакур
8
В моей установке python3 не распознается. Это работает: python -m django --version
Antti A

Ответы:

673

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

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

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

>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)
bcoughlan
источник
Просто погрузитесь в env перед проверкой версии, иначе ни один модуль с именем django.
EngineSense
380

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

$ python -c "import django; print(django.get_version())"
2.0
Брэди Эмерсон
источник
Объединение Брэди Эмерсона и bcoughlan: python -c "import django; print(django.VERSION)"возвращается (1, 8, 5, 'final', 0)
Дэвид Глеба
Вы должны сделать python -c "import django; print(django.__version__)"вместо этого. Он также возвращает '2.2.4'(это просто вызовget_version() ) и является стандартом, которому следуют большинство других библиотек, поскольку он определен в PEP 8 . Это работает с Django 1.8
Борис
213

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

$ django-admin.py version
2.0
Justi
источник
По состоянию на май 2018 года (дата, когда я снова проверил этот ответ), он показывает версию как 1.11.5, несмотря на то, что я установил 2.0.1. Но >> django.VERSIONв оболочке python отображается правильная версия
Alex Jolig
1
это сработало для меня: Ubuntu 18.04, virtualenv с P 3.6 и Django 2.2
Carmine Tambascia
1
Отличная работа
Phok Chanrithisak
97

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

./manage.py --version
nik7
источник
53
>>> import django
>>> print(django.get_version())
1.6.1

Я использую IDLE (Python GUI).

Mtech
источник
41

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

заморозка
и он покажет всю версию вашего компонента, включая Django.

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

josh@villaroyale:~/code/djangosite$ pip freeze | grep Django
Django==1.4.3
Джош браун
источник
36

Для Python :

import sys
sys.version

Для Джанго (как уже упоминалось здесь):

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
Джеймс Брэдбери
источник
2
Как насчет использования django.VERSION, которое уже поставляется в виде кортежа? Я уверен, что django.VERSION >= (1, 8)работа всегда будет работать как задумано.
Flimm
31

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

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

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

$ python --version

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

$ which python

И чтобы проверить версию Django:

$ python -m django --version
Александр
источник
18

Есть разные способы получить версию 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

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

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

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

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

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

python manage.py runserver --version
kmario23
источник
10
django-admin --version
python manage.py --version
pip freeze | grep django
Вишну Киран
источник
Вам нужно будет использовать python manage.py --versionNote the double-
Shawnzam
@Shawnzam да, конечно, опечатка .. Большое спасибо .. Отредактированный ответ
Вишну Киран
6

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

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

Джордж Камминс
источник
5

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

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

Авинаш Бакши
источник
5

Версия Django или любая другая версия пакета

откройте терминал или командную строку

тип

pip show django

или

pip3 show django

Вы можете найти любую версию пакета ...
пример

pip show tensorflow

pip show numpy 

так далее....

Мухаммед Шабин
источник
Мне больше нравится простота этого ответа. pip freezeпоказывает кучу лишней хрени, если вы собрали несколько пакетов.
DukeSilver
4

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

cat __init__.py | grep VERSION

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

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

В django есть недокументированный модуль версий утилит

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)
yellowcap
источник
4

Введите свой CMD или терминал:

python -m django --version
Анубхав Мадхав
источник
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, вы можете использовать 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
Артур Барсегян
источник
2

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

import django
django.get_version()
Байшахи Дасгупта
источник
2

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

$ django-admin --version
1.11.10
Марк Уайт
источник
1

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

python -m django - версия

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

Амит Бадерия
источник
1

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

>>> import django
>>> print(django.get_version())
2.1
Соня Рани
источник
1

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

Просто введите python -m django --version или введите pip freezeвсе версии установленных модулей, включая Django.

Суреш
источник
нет причин для того, чтобы за это вообще проголосовали, это один из самых кратких ответов.
tfantina
почему это понижено ??
Азима