it-roy-ru.com

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

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

429
maheshgupta024

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

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

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

>>> import Django
>>> Django.VERSION
(2, 0, 0, 'final', 0)
531
bcoughlan

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

$ python -c "import Django; print(Django.get_version())"
2.0
338
Brady Emerson

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

$ Django-admin.py version
2.0
179
justi

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

./manage.py --version
78
nik7
>>> import Django
>>> print(Django.get_version())
1.6.1

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

48
Mtech

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

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

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

[email protected]:~/code/djangosite$ pip freeze | grep Django
Django==1.4.3
34
Josh Brown

Для 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
33
James Bradbury

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

Django-admin.py version

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

33
Anshul Bisht

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

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

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

$ python --version

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

$ which python

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

$ python -m Django --version
26
Alexander

Есть разные способы получить версию 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() OR version.get_complete_version()
  3. import pkg_resources pkg_resources.get_distribution('Django').version

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

11
Vishal Nagda
Django-admin --version
python manage.py --version
pip freeze | grep Django
10
Vishnu Kiran

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

Django-admin --version

ОБНОВЛЕНИЕ

в последнее время я заметил, что правильным способом было бы перейти на python Shell и проверить там версию:

$ python
>> import Django
>> Django.VERSION
8
Alex Jolig

Для проверки с помощью 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
8
kmario23

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

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

5
Avinash Bakshi

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

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

5
George Cummins

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

https://github.com/Django/django/blob/master/Django/utils/version.py

При этом вы можете получить обычную версию в виде строки или подробную версию Tuple:

>>> from Django.utils import version
>>> version.get_version()
... 1.9
>>> version.get_complete_version()
... (1, 9, 0, 'final', 0)
4
yellowcap

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

cat __init__.py | grep VERSION

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

VERSION = (1, 5, 5, 'final', 0)
4
Alex Babak

Я думал, что самый 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
3
Javier Buzzi

Если вы хотите сравнить версию 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
Artur Barseghyan

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

$ Django-admin --version
1.11.10
2
Mark White

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

import Django
django.get_version()
2
Baishakhi Dasgupta

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

Django-admin --version
1
Vishnu Kiran

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

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

>>> import Django
>>> print(Django.get_version())
2.1
0
Sonia Rani

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

python -m Django --version

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

0
Amit baderia