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?

maheshgupta024
quelle
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)
bcoughlan
quelle
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
quelle
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
justi
quelle
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
nik7
quelle
53
>>> import django
>>> print(django.get_version())
1.6.1

Ich benutze den IDLE (Python GUI).

Mtech
quelle
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
Josh Brown
quelle
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
James Bradbury
quelle
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
Alexander
quelle
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.)

Vishal Nagda
quelle
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
kmario23
quelle
10
django-admin --version
python manage.py --version
pip freeze | grep django
Vishnu Kiran
quelle
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.

George Cummins
quelle
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

Avinash Bakshi
quelle
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)
Alex Babak
quelle
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

In Django gibt es ein Modul für undokumentierte Utils-Versionen

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

Damit können Sie die normale Version als String oder ein detailliertes Versionstupel erhalten:

>>> from django.utils import version
>>> version.get_version()
... 1.9
>>> version.get_complete_version()
... (1, 9, 0, 'final', 0)
gelbe Kappe
quelle
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....

Muhammad Shabin
quelle
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
4

Geben Sie Ihr CMD oder Terminal ein:

python -m django --version
Anubhav Madhav
quelle
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
Javier Buzzi
quelle
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
Artur Barseghyan
quelle
2

Geben Sie den folgenden Befehl in die Python-Shell ein

import django
django.get_version()
Baishakhi Dasgupta
quelle
2

Nach Django 1.0 können Sie dies einfach tun

$ django-admin --version
1.11.10
Mark White
quelle
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.

Amit baderia
quelle
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
Sonia Rani
quelle
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)
Shafik
quelle
0

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

suresh
quelle
Kein Grund, dies überhaupt abzulehnen, es ist eine der prägnantesten Antworten.
Tfantina
warum ist das herabgestimmt?
Azima