Jak sprawdzić wersję Django

547

Do naszej aplikacji muszę używać Pythona i Django . Mam więc dwie wersje Python, 2.6 i 2.7. Teraz zainstalowałem Django. Mogłem pomyślnie uruchomić przykładową aplikację do testowania Django. Ale w jaki sposób mam się upewnić, czy Django używa wersji 2.6 lub 2.7 i jakiej wersji modułów używa Django?

maheshgupta024
źródło
49
Najkrótsza droga -python3 -m django --version
Aniket Thakur
8
W mojej instalacji python3 nie jest rozpoznawany. Działa to: python -m django --version
Antti A

Odpowiedzi:

672

Django 1.5 obsługuje Python 2.6.5 i nowsze wersje.

Jeśli jesteś pod Linuksem i chcesz sprawdzić wersję Pythona, której używasz, uruchom python -Vz wiersza poleceń.

Jeśli chcesz sprawdzić wersję Django, otwórz konsolę Python i wpisz

>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)
bcoughlan
źródło
Zanurz się w env przed sprawdzeniem wersji, w przeciwnym razie żaden moduł o nazwie django.
EngineSense
380

Zasadniczo to samo, co odpowiedź bcoughlana , ale tutaj jest to polecenie wykonywalne:

$ python -c "import django; print(django.get_version())"
2.0
Brady Emerson
źródło
Łącząc Brady'ego Emersona i bcoughlana: python -c "import django; print(django.VERSION)"powraca (1, 8, 5, 'final', 0)
David Gleba
Powinieneś python -c "import django; print(django.__version__)"zamiast tego zrobić . Zwraca również '2.2.4'(jest to tylko wywołanieget_version() ) i jest standardem obowiązującym większość innych bibliotek, ponieważ jest zdefiniowany w PEP 8 . Działa od Django 1.8
Boris
213

Jeśli masz zainstalowaną aplikację:

$ django-admin.py version
2.0
tylko ja
źródło
W maju 2018 r. (Data ponownego przetestowania tej odpowiedzi) pokazuje ona wersję 1.11.5 pomimo zainstalowanej wersji 2.0.1. Ale >> django.VERSIONw pythonowej powłoce wyświetla właściwą wersję
Alex Jolig,
1
to zadziałało dla mnie: ubuntu 18.04, virtualenv z P 3.6 i Django 2.2
Carmine Tambascia
1
Dobra robota,
97

Przejdź do katalogu domowego projektu Django i wykonaj:

./manage.py --version
nik7
źródło
53
>>> import django
>>> print(django.get_version())
1.6.1

Korzystam z IDLE (Python GUI).

Mtech
źródło
41

Jeśli masz pip , możesz także zrobić

zamrożenie pip
i wyświetli wszystkie wersje składowe, w tym Django.

Możesz przerzucić go przez grep, aby uzyskać tylko wersję Django. To jest,

josh@villaroyale:~/code/djangosite$ pip freeze | grep Django
Django==1.4.3
Josh Brown
źródło
36

W przypadku Python :

import sys
sys.version

W przypadku Django (jak wspomnieli inni tutaj):

import django
django.get_version()

Potencjalnym problemem związanym z prostym sprawdzaniem wersji jest to, że wersje są aktualizowane, więc kod może być nieaktualny. Chcesz się upewnić, że „1.7” <„1.7.1” <„1.7.5” <„1.7.10”. Normalne porównanie ciągów nie powiedzie się w ostatnim porównaniu:

>>> '1.7.5' < '1.7.10'
False

Rozwiązaniem jest użycie StrictVersion z destutils .

>>> from distutils.version import StrictVersion
>>> StrictVersion('1.7.5') < StrictVersion('1.7.10')
True
James Bradbury
źródło
2
Co z używaniem django.VERSION, które już jest krotką? Jestem pewien, że robienie django.VERSION >= (1, 8)tego zawsze będzie działać zgodnie z przeznaczeniem.
Flimm
31

Jak mówisz, masz dwie wersje Pythona, zakładam, że znajdują się one w różnych środowiskach wirtualnych (np. Venv) lub może środowiskach conda .

Kiedy zainstalowałeś django, prawdopodobnie było to tylko w jednym środowisku. Możliwe, że masz dwie różne wersje django, po jednej dla każdej wersji Pythona.

W terminalu Unix / Mac możesz sprawdzić swoją wersję Pythona w następujący sposób:

$ python --version

Jeśli chcesz poznać źródło:

$ which python

Aby sprawdzić wersję django:

$ python -m django --version
Alexander
źródło
18

Istnieją różne sposoby uzyskania wersji Django. Możesz użyć dowolnej z poniższych opcji zgodnie z własnymi wymaganiami.

Uwaga: Jeśli pracujesz w środowisku wirtualnym, załaduj środowisko Pythona


Polecenia terminalowe

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

Polecenia powłoki Django

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

(Możesz zmodyfikować tę odpowiedź, jeśli masz jakąś korektę lub chcesz dodać więcej powiązanych informacji.)

Vishal Nagda
źródło
10

Aby sprawdzić za pomocą powłoki Python, wykonaj następujące czynności.

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

Jeśli chcesz to zrobić w powłoce Unix / Linux za pomocą jednej linii, zrób to

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

Po opracowaniu aplikacji możesz bezpośrednio sprawdzić jej wersję, wykonując następujące czynności.

python manage.py runserver --version
kmario23
źródło
10
django-admin --version
python manage.py --version
pip freeze | grep django
Wisznu Kiran
źródło
Musisz użyć python manage.py --versionUwaga podwójne-
Shawnzam
@Shawnzam tak, oczywiście literówka .. Wielkie dzięki .. Odpowiedź zredagowana
Vishnu Kiran
6

Django użyje wersji Pythona określonej przez zmienną środowiskową PYTHONPATH. Możesz użyćecho $PYTHONPATH w powłoce, aby określić, która wersja będzie używana.

Wersje modułów używane przez Django będą wersjami modułów zainstalowanymi w wersji Pythona określonej przez PYTHONPATH.

George Cummins
źródło
5

biegać pip list na LINUX TERMINAL i znajdź Django i jego wersję na liście

uruchom pip freezena cmd w systemie Windows

Avinash Bakshi
źródło
4

Możesz to zrobić również bez Pythona. Po prostu wpisz to w swoim katalogu Django:

cat __init__.py | grep VERSION

I dostaniesz coś takiego:

VERSION = (1, 5, 5, 'final', 0)
Alex Babak
źródło
1
Jest to świetne, gdy nie chcesz aktywować wirtualnej env tylko po to, aby uzyskać wartość, lub używasz czegoś takiego jak AWS Elastic Beanstalk i nie możesz aktywować wirtualnej env.
rjferguson
1
@rjferguson nie musisz aktywować env, aby wykonać pip freeze/ python -c "import <module>; <module>.VERSION". Można po prostu odwołać go: /path/to/env/bin/python -c "<command>"czy chcesz zainstalować / używać PIP samo: /path/to/env/bin/pip freeze. Używam tego cały czas, szczególnie gdy jestem zalogowany jako root, a cały mój kod aplikacji działa tak jak www-dataja: sudo su www-data -c "/path/to/env/bin/pip install <module>"i nawet nie mrugam. (wiem, że to prawie 2 lata później i zapewne wiesz o tym teraz - to więcej dla następnego faceta)
Javier Buzzi
> bez Pythona >> python -c
Alex Babak
4

W Django znajduje się nieudokumentowany moduł wersji Utils

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

Dzięki temu możesz uzyskać normalną wersję jako ciąg lub szczegółową krotkę wersji:

>>> from django.utils import version
>>> version.get_version()
... 1.9
>>> version.get_complete_version()
... (1, 9, 0, 'final', 0)
żółta czapka
źródło
4

Wersja Django lub dowolna inna wersja pakietu

otwórz terminal lub wiersz poleceń

rodzaj

pip show django

lub

pip3 show django

możesz znaleźć dowolną wersję pakietu ...
przykład

pip show tensorflow

pip show numpy 

itp....

Muhammad Shabin
źródło
Najbardziej podoba mi się prostota tej odpowiedzi. pip freezepokazuje mnóstwo dodatkowego badziewia, jeśli wpakowałeś się w kilka paczek.
DukeSilver
4

Wpisz swój CMD lub terminal:

python -m django --version
Anubhav Madhav
źródło
3

Myślałem, że najbardziej pythonicznym sposobem było:

>>> import pkg_resources; 
>>> pkg_resources.get_distribution('django').version
'1.8.4'

To wiąże się bezpośrednio z setup.py: https://github.com/django/django/blob/master/setup.py#L37

To zdecydowanie najlepszy sposób na uzyskanie numeru wersji DOWOLNEGO pakietu!

Także jest 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

Jeśli chodzi o pythonwersję, zgadzam się z @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)]'

Wiązanie wszystkiego razem:

>>> StrictVersion((sys.version.split(' ')[0])) > StrictVersion('2.6')
True
Javier Buzzi
źródło
2

Jeśli chcesz dokonać porównania wersji Django, możesz użyć django-nine(instalacja pip django-nine). Na przykład, jeśli wersja Django zainstalowana w twoim środowisku to 1.7.4, wówczas spełnione są następujące warunki.

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
Artur Barseghyan
źródło
2

Wpisz następujące polecenie w powłoce Pythona

import django
django.get_version()
Baishakhi Dasgupta
źródło
2

Po wersji django 1.0 możesz to zrobić

$ django-admin --version
1.11.10
Mark White
źródło
1

Możesz uzyskać wersję django, uruchamiając następujące polecenie w wierszu poleceń powłoki

python -m django --version

Jeśli Django jest zainstalowany, powinieneś zobaczyć wersję, w przeciwnym razie pojawi się komunikat „Brak modułu o nazwie django”.

Amit baderia
źródło
1

możesz zaimportować django, a następnie wpisać instrukcję print jak podano poniżej, aby poznać wersję django, tj. zainstalowaną w twoim systemie:

>>> import django
>>> print(django.get_version())
2.1
Sonia Rani
źródło
1

Wersja Python obsługiwana przez wersję 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

Aby sprawdzić, czy Django może być widziany przez Python, wpisz python ze swojej powłoki. Następnie po pytaniu w Pythonie spróbuj zaimportować Django:

>>> import django
>>> print(django.get_version())
2.1
>>> django.VERSION
(2, 1, 4, 'final', 0)
shafik
źródło
0

Po prostu wpisz python -m django --version lub wpisz, pip freezeaby zobaczyć wszystkie wersje zainstalowanych modułów, w tym Django.

pewny
źródło
nie ma powodu, by w ogóle go lekceważyć, jest to jedna z najbardziej zwięzłych odpowiedzi.
tfantina
dlaczego jest to zaniżone?
Azima