Як перевірити версію Джанго


547

Я маю використовувати Python та Django для нашого застосування. Тож у мене є дві версії Python, 2.6 та 2.7. Тепер я встановив Django. Я міг би запустити зразок програми для тестування Джанго успішно. Але як переконатися, що Django використовує версію 2.6 або 2.7 та яку версію модулів використовує Django?


49
Найкоротший шлях -python3 -m django --version
Анікет Такур

8
У моїй установці python3 не розпізнається. Це працює: python -m django --version
Antti A

Відповіді:


672

Django 1.5 підтримує Python 2.6.5 та новіших версій.

Якщо ви перебуваєте під Linux та хочете перевірити використану вами версію Python, запустіть python -Vз командного рядка.

Якщо ви хочете перевірити версію Django, відкрийте консоль Python та введіть

>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)

Просто зануріться в 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 . Працює з Джанго 1,8
Борис

213

Якщо ви встановили додаток:

$ django-admin.py version
2.0

У травні 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

53
>>> import django
>>> print(django.get_version())
1.6.1

Я використовую IDLE (Python GUI).


41

Якщо у вас є піп , ви також можете зробити

pip заморожувати
і він покаже всю вашу компонентну версію, включаючи 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

І щоб перевірити версію джанго:

$ python -m django --version

18

Існують різні способи отримати версію Джанго. Ви можете використовувати будь-яке з наведених нижче, відповідно до ваших вимог.

Примітка: Якщо ви працюєте у віртуальному середовищі, тоді завантажте ваше середовище 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

Команди оболонки Джанго

  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

10
django-admin --version
python manage.py --version
pip freeze | grep django

Вам потрібно буде скористатися python manage.py --versionNote double-
Shawnzam

@Shawnzam так, звичайно, друкарська помилка. Дякую багато .. Відповідь відредагував
Vishnu Kiran

6

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

Версії модулів, що використовуються Django, будуть версіями модулів, встановленими під версією Python, заданою PYTHONPATH.


5

запустіть pip listLINUX TERMINAL і знайдіть у списку Джанго та його версію

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


4

Можна обійтися і без Python. Просто введіть це у свій каталог Django:

cat __init__.py | grep VERSION

І ви отримаєте щось на кшталт:

VERSION = (1, 5, 5, 'final', 0)

1
Це чудово, коли ви не хочете активувати віртуальну env просто для отримання значення, або ви використовуєте щось на зразок AWS Elastic Beanstalk і не можете активувати віртуальну env.
rjferguson

1
@rjferguson вам не потрібно активувати env, щоб зробити pip freeze/python -c "import <module>; <module>.VERSION" . Ви можете просто посилатися на нього: /path/to/env/bin/python -c "<command>"чи якщо ви хочете встановити / використовувати піп, то ж саме: /path/to/env/bin/pip freeze. Я використовую це весь час, особливо коли я ввійшов у систему як корінь, і весь мій код програми працює як 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)

4

Версія Django або будь-яка інша версія пакету

відкрийте термінал або командний рядок

тип

pip show django

або

pip3 show django

ви можете знайти будь-яку версію пакета ...
приклад

pip show tensorflow

pip show numpy 

тощо.


Мені найбільше подобається простота цієї відповіді. pip freezeпоказує тонну зайвих лайнів, якщо ви зіпсували в купу пакетів.
DukeSilver


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



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

чому це спростовується ??
Азіма
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.