So überprüfen Sie die Django-Version


547

Ich muss Python und Django für unsere Anwendung verwenden. Ich habe also zwei Versionen von Python, 2.6 und 2.7. Jetzt habe ich Django installiert. Ich konnte die Beispielanwendung zum erfolgreichen Testen von Django ausführen. Aber wie stelle ich sicher, ob Django die Version 2.6 oder 2.7 verwendet und welche Version der Module Django verwendet?


49
Kürzester Weg -python3 -m django --version
Aniket Thakur

8
In meiner Installation wird Python3 nicht erkannt. Dies funktioniert: Python -m Django
Antti A

Antworten:


672

Django 1.5 unterstützt Python 2.6.5 und höher.

Wenn Sie unter Linux arbeiten und die von Ihnen verwendete Python-Version überprüfen möchten, führen Sie sie über python -Vdie Befehlszeile aus.

Wenn Sie die Django-Version überprüfen möchten, öffnen Sie eine Python-Konsole und geben Sie ein

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

Tauchen Sie einfach in env ein, bevor Sie die Version überprüfen, andernfalls gibt es kein Modul namens django.
EngineSense

380

Im Grunde das gleiche wie die Antwort von bcoughlan , aber hier ist es ein ausführbarer Befehl:

$ python -c "import django; print(django.get_version())"
2.0

Brady Emerson und Bcoughlan kombinieren: python -c "import django; print(django.VERSION)"Rückkehr (1, 8, 5, 'final', 0)
David Gleba

Sie sollten python -c "import django; print(django.__version__)"stattdessen tun . Es gibt auch zurück '2.2.4'(es ist nur ein Aufruf vonget_version() ) und ist der Standard, dem die meisten anderen Bibliotheken folgen, da es in PEP 8 definiert ist . Es funktioniert seit Django 1.8
Boris

213

Wenn Sie die Anwendung installiert haben:

$ django-admin.py version
2.0

Als Mai 2018 (das Datum, an dem ich diese Antwort erneut getestet habe) wird die Version 1.11.5 angezeigt, obwohl ich 2.0.1 installiert habe. Aber >> django.VERSIONin Python Shell zeigt die richtige Version
Alex Jolig

1
das hat bei mir funktioniert: ubuntu 18.04, virtualenv mit P 3.6 und Django 2.2
Carmine Tambascia

1
Gute

97

Gehen Sie zu Ihrem Django- Projekt-Home-Verzeichnis und gehen Sie wie folgt vor:

./manage.py --version

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

Ich benutze den IDLE (Python GUI).


41

Wenn Sie Pip haben , können Sie auch eine

Pip einfrieren
und es wird Ihre All-Component-Version einschließlich Django angezeigt.

Sie können es durch grep leiten, um nur die Django-Version zu erhalten. Das ist,

josh@villaroyale:~/code/djangosite$ pip freeze | grep Django
Django==1.4.3

36

Für Python :

import sys
sys.version

Für Django (wie von anderen hier erwähnt):

import django
django.get_version()

Das potenzielle Problem bei der einfachen Überprüfung der Version besteht darin, dass die Versionen aktualisiert werden und der Code möglicherweise veraltet ist. Sie möchten sicherstellen, dass '1.7' <'1.7.1' <'1.7.5' <'1.7.10'. Ein normaler Zeichenfolgenvergleich würde beim letzten Vergleich fehlschlagen:

>>> '1.7.5' < '1.7.10'
False

Die Lösung besteht darin, StrictVersion von Distutils zu verwenden .

>>> from distutils.version import StrictVersion
>>> StrictVersion('1.7.5') < StrictVersion('1.7.10')
True

2
Was ist mit der Verwendung django.VERSION, die bereits als Tupel kommt? Ich bin mir ziemlich sicher, dass dies django.VERSION >= (1, 8)immer wie beabsichtigt funktioniert.
Flimm

31

Wie Sie sagen, haben Sie zwei Versionen von Python. Ich gehe davon aus, dass sie sich in verschiedenen virtuellen Umgebungen (z. B. venv) oder möglicherweise in Conda-Umgebungen befinden .

Wenn Sie django installiert haben, war es wahrscheinlich nur in einer Umgebung. Es ist möglich, dass Sie zwei verschiedene Versionen von Django haben, eine für jede Version von Python.

Von einem Unix / Mac-Terminal aus können Sie Ihre Python-Version wie folgt überprüfen:

$ python --version

Wenn Sie die Quelle wissen möchten:

$ which python

Und um die Version von Django zu überprüfen:

$ python -m django --version

18

Es gibt verschiedene Möglichkeiten, um die Django-Version zu erhalten. Sie können je nach Ihren Anforderungen eine der folgenden Angaben verwenden.

Hinweis: Wenn Sie in einer virtuellen Umgebung arbeiten, laden Sie bitte Ihre Python-Umgebung


Terminalbefehle

  1. python -m django --version
  2. django-admin --version oder django-admin.py version
  3. ./manage.py --version oder 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 Shell-Befehle

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

(Sie können diese Antwort jederzeit ändern, wenn Sie eine Korrektur haben oder weitere verwandte Informationen hinzufügen möchten.)


10

Gehen Sie wie folgt vor, um die Verwendung einer Python-Shell zu überprüfen.

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

Wenn Sie dies in einer Unix / Linux-Shell mit einer einzelnen Zeile tun möchten, tun Sie dies

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

Sobald Sie eine Anwendung entwickelt haben, können Sie die Version direkt anhand der folgenden Methoden überprüfen.

python manage.py runserver --version

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

Sie müssen python manage.py --versionNote the double-
Shawnzam

@Shawnzam ja natürlich ein Tippfehler .. Vielen Dank .. Antwort bearbeitet
Vishnu Kiran

6

Django verwendet die von der Umgebungsvariablen PYTHONPATH angegebene Python-Version. Sie können echo $PYTHONPATHin einer Shell bestimmen, welche Version verwendet wird.

Die von Django verwendeten Modulversionen sind die Modulversionen, die unter der von PYTHONPATH angegebenen Python-Version installiert sind.


5

Führen Sie pip listLINUX TERMINAL aus und finden Sie Django und seine Version auf der Liste

pip freezeunter cmd unter Windows ausführen


4

Sie können es auch ohne Python tun. Geben Sie dies einfach in Ihr Django-Verzeichnis ein:

cat __init__.py | grep VERSION

Und Sie werden so etwas bekommen wie:

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

1
Dies ist ideal, wenn Sie die virtuelle Umgebung nicht nur aktivieren möchten, um einen Wert zu erhalten, oder wenn Sie etwas wie AWS Elastic Beanstalk verwenden und die virtuelle Umgebung nicht aktivieren können.
rjferguson

1
@rjferguson Sie müssen Ihre Umgebung nicht aktivieren, um ein pip freeze/ zu tun python -c "import <module>; <module>.VERSION". Sie können einfach darauf verweisen: /path/to/env/bin/python -c "<command>"oder wenn Sie pip installieren / verwenden möchten, dasselbe : /path/to/env/bin/pip freeze. Ich benutze dies die ganze Zeit, besonders wenn ich als Root angemeldet bin und mein gesamter Anwendungscode so läuft wie www-dataich: sudo su www-data -c "/path/to/env/bin/pip install <module>"und nicht einmal blinke. (Ich weiß, das ist fast 2 Jahre später, und Sie wissen wahrscheinlich jetzt davon - das ist mehr für den nächsten Mann)
Javier Buzzi

> ohne Python >> Python -c
Alex Babak


4

Django-Version oder eine andere Paketversion

Öffnen Sie das Terminal oder die Eingabeaufforderung

Art

pip show django

oder

pip3 show django

Sie können jede Paketversion finden ...
Beispiel

pip show tensorflow

pip show numpy 

usw....


Die Einfachheit dieser Antwort gefällt mir am besten. pip freezezeigt eine Menge zusätzlichen Mist, wenn Sie in ein paar Paketen gepippt haben.
DukeSilver


3

Ich dachte, der pythonischste Weg wäre:

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

Dies hängt direkt mit setup.py zusammen: https://github.com/django/django/blob/master/setup.py#L37

Es ist definitiv der beste Weg, um die Versionsnummer eines Pakets zu erhalten!

Auch gibt es 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

Was die pythonVersion betrifft, stimme ich @jamesdradbury zu

>>> 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)]'

Alles zusammenbinden:

>>> StrictVersion((sys.version.split(' ')[0])) > StrictVersion('2.6')
True

2

Wenn Sie einen Django-Versionsvergleich durchführen möchten, können Sie django-nine(pip install django-nine) verwenden. Wenn beispielsweise die in Ihrer Umgebung installierte Django-Version 1.7.4 ist, gilt Folgendes.

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

Nach Django 1.0 können Sie dies einfach tun

$ django-admin --version
1.11.10

1

Sie können die Django-Version erhalten, indem Sie den folgenden Befehl in einer Shell-Eingabeaufforderung ausführen

Python -m Django - Version

Wenn Django installiert ist, sollte die Version angezeigt werden, andernfalls wird die Fehlermeldung "Kein Modul mit dem Namen django" angezeigt.


1

Sie können django importieren und dann die unten angegebene print-Anweisung eingeben, um die auf Ihrem System installierte Version von django zu erfahren:

>>> import django
>>> print(django.get_version())
2.1

1

Python-Version wird von der Django-Version unterstützt

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

Geben Sie Python aus Ihrer Shell ein, um zu überprüfen, ob Django von Python gesehen werden kann. Versuchen Sie dann an der Python-Eingabeaufforderung, Django zu importieren:

>>> import django
>>> print(django.get_version())
2.1
>>> django.VERSION
(2, 1, 4, 'final', 0)

0

Geben Sie einfach python -m django --version oder ein pip freeze, um alle Versionen der installierten Module einschließlich Django anzuzeigen.


Kein Grund, dies überhaupt abzulehnen, es ist eine der prägnantesten Antworten.
Tfantina

warum ist das herabgestimmt?
Azima
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.