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?


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)

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

Łą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

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



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

Korzystam z IDLE (Python GUI).


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

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

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

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.)


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

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

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.


5

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

uruchom pip freezena cmd w systemie Windows


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)

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

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....


Najbardziej podoba mi się prostota tej odpowiedzi. pip freezepokazuje mnóstwo dodatkowego badziewia, jeśli wpakowałeś się w kilka paczek.
DukeSilver


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

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



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”.


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

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)

0

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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.